Tagstore API improvements

Description

A few last API improvements to make this tagstore API a bit nicer, before we get too locked in.

  • Per @symbolist's suggestion, `Tag.tag` is now `Tag.name` which I think is much nicer

  • The API was missing a way to get an existing `Tag` without constructing it yourself, so I added a `get_tag()` method

  • Made the `Taxonomy` class a bit more pythonic by giving it some methods, so now you can do `taxonomy.add_tag('foo')` instead of `tagstore.add_tag_to_taxonomy('foo', taxonomy)`

Testing instructions:

  • The unit tests should cover everything quite well, so mostly review the code. You can also run the updated example code from `README.rst`.

Done

Assignee

Unassigned

Reporter

Open Source Pull Request Bot

Labels

None

Contributor Name

Braden MacDonald

Repo

edx/blockstore

Customer

Epic Link

None

OSCM Assignee

None

Platform Map Area (Levels 1 & 2)

None

Platform Map Area (Levels 3 & 4)

None

Blended Hour Utilization Percentage

None

edX Theme

None

edX Squad

None

Github Lines Added

273

Github Lines Deleted

170

Priority

Unset