Group WaniKani kanji by level

This pull causes WaniKani kanji to be sorted by WaniKani achievement level.

![image](https://cloud.githubusercontent.com/assets/3749564/4262786/edf15bb4-3bb7-11e4-82ca-393d73cb34e1.png)

Each WaniKani level is implemented as 'subcategory' under the top-level WaniKani 'category'.  The header for each subcategory is clickable.  Clicking will cause the selection status for all kanji in the corresponding level to be toggled.  In other words, if you click "Level 1", all level 1 kanji will be selected.  Click again and they will be deselected.

Regarding possible additional uses of this code:
Currently, all of the JLPT levels (N5 to N1) exist as top-level categories.  This implementation would allow placing "JLPT" as the top-level category, and the N5 to N1 levels as subcategories.  The levels would then be clickable, allowing all of the kanji in a level to be selected/deselected at once.  This modification would be implemented by adding a subcategory field to the data structure in the current kanji.json database.  Example:

```javascript
{
    "category": "JLPT",      // Top-level category becomes generic 'JLPT' instead of 'jlptn5'
    "subcategory": "N5",     // Subcategory is added, containing the JLPT level
    "character": "日",
    "onyomi": "ニチ ジツ -",
    "kunyomi": "ひ -び",
    "meaning": "day, sun, Japan"
}
```

In addition to JLPT, some users have expressed interest in adding support for the "Genki" and "Japanese for Busy People" textbooks, including separating the kanji by chapter or 'Lesson',  This would be implemented in the same manner as described for JLPT.

This code also adds a 'natural' comparison function, which aids sorting of labels that contain numbers.  For example, a normal string sort would place "Level 10" before "Level 2".  Natural sort allows these to be sorted by numerical order instead of string order.
Re: use of regex replace...
The template in this case is a little different from the others.  I populate an .attr() on the top-level element, but the .text() is on a child element (<h2>).  So, this adds an extra level of DOM navigation that the other templates don't have.

I profiled a few different ways to populate the object, and saw no time difference on a sample set of about 20,000 kanji.  The time difference was smaller than the natural time variation due to background processes on the PC.

That being said, populating 20,000 kanji averaged about 24 seconds on my PC.  I profiled the various parts of the function, and it turns out that this:
   $categoryBox.append($kanjiSelector);
was responsible for 22 of the 24 seconds.  So, I'm going to look at some alternatives, such as pre-sorting the database, then adding everything in one go.