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 session update functionality

tenk/sessions.py: If there already exists session data for a given date,
the new data will be "merged" with the old data. Specifically, hours
will be added together and any extra notes will be appended to any old
notes. Methods find_existing_session and update_xml were created for
this functionality.