update leveling system

tenk.skills.py: change from 10 levels to a saner 100 levels. 1000 hours
to level up was a bit much.
tenk.skills.py: adjust calcprogress method to reflect level change.
tests.skills_test.py adjust calclevel tests to reflect level change and
add unit tests for calcprogress
change docstring format

I really like having header comments surrounded by pound signs, but I've
relented to using proper docstrings as per pep8.
add "test runner", runtests.sh, for convenience
update runtests.sh to take a param

primarily so I can easily run tests with verbose output.
move print_progress logic from users.py to skills.py

I originally had the print_progress function in users.py because it made
sense for a user to be able to print her own progress. Upon thinking
about it, I feel it makes more sense for a skill object to print out its
own progress, especially since it's already calculating its own level
and progress. So I moved the calculations and formatting/printing over
into skills.py and users.py's print_progress function just loops through
the skill objects and calls its print_progress function.
improve naming consistency

users.py/skills.py: various method names changed to use snake_case
skills.py: add more detail to progress printout
replace menu-based interface

Ripped out the menu interface in favor of a traditional CLI. I
was originally going to keep both as the menu interface can be rather
convenient; however, I decided I didn't want to maintain both.

The new interface is influenced by todo.txt's CLI, where to modify any
todo you enter its number.
add sessions for logging extra details

Sessions log details about the date of practice and the amount of time
spent practicing on that date. You can also save notes about what was
practiced, what improved, and what you want to work on next time.
Merge remote-tracking branch 'origin/master' into dev