fix the quiz.js not being able to populate json data for the quiz
Introduce Rank threshold

Get filter working better. And freaking clean up that algorithm
Dict.json is now simplified, instructive dictionary
Fix up a bunch of random the filtering!

Finish small script for generating all the lesson content
Introduce the Word Explorer (in prototype form)

Dictionary now runs on empty filter (returning everything)
Pull exception stuff into its own class
Add Angular.js
client >> lessonbrowser:

-- rename wordexplorer.html  to lessonbrowser.html
-- add lesson asset
-- add LessonBrowserCtrl. looks hideous though
-- include wordexplorer
-- include services
-- add learning words to common.json
-- refresh the dictionary with suprisingly missing words

dictionary filtering:
-- enable filtering with asterisk

home page:
-- adjust main.css
-- refresh content

miscellaneous
-- add files that assisted in creation of assets (research folder)
-- add debug web method to check for "holes" in learning dictionary
client (main)

-- instead of lessonbrowser, it's called main, as it should be
-- highlight mastered words

disciple.py:
-- add profile-specific methods

quiz.js:
-- be able to send in an array of words
quiz:

-- display an ever-updating list of words to give learner a sense of progress
quiz:

-- "clarify" the word quiz look
-- completely divide up the key quiz and word quiz (reintroduce old versions of js/css/html to extract out common code later)
tidy up quiz functionality

quiz-word:
-- fix up how quiz ends
-- optimize selection of words that go into the quiz
-- clear out key-specific code

backend
save recently mastered word list
add filter history

backend:
-- cleaned it up a bit for fear of string comparison being too wonky

client:
-- added new service for user history data
-- propagate renaming
add filters to word list

some renaming, to get it more consistent: there are no lessons in the code. everything is a filter
reorganize the controllers and services. make a main controller

misc fixes
-- introduce dict-canonical, for the client side.
-- handle cases when brand new user is starting to use the app