Support Subcategories in Kanji Categories

### Summary
**Issue** #17 

Now a kanji can have a `subCategory` property which is a string. 

When adding kanji to the selection box, it will check if the subCategory already exists in the DOM, if not, it will add it and move on to adding the kanji to that category. 

If it the subcategory is already in the DOM it will just move along and add that kanji to the specified subcategory. 

Categories can have the same subCategory and kanji will populate the correct subCategory.

In order to get around the fact the WaniKani's API does **not** return kanji in order via level, I wrote a function that takes the user's level and adds that many subCategory elements to the WaniKani category. Then it passes the kanji off to the Kanji selection updater, which sees these subCategories have already been added, and knows to not update the DOM. 

### TODO:
Note that this does **not** include selecting multiple kanji at a time. That should be in a separate pull request. Later I will have a separate .json file that contains Categories. Each Category will have an array of kanji, or a subcategory with an array.

:mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong::mahjong:
Thank you! I was worried about this. If you want to make a commit with this change that would be great so you still get some open source credit. :smile: 

If not I can, but I think this is valuable feedback!