Functional skilltree and codex bonuses!

The entire skilltree now works as promised! A lot of new stuff as well
as a lot of refinement. You can now click on a valid slot and jump to a
codex view which shows you only relevant codices. Clicking on a codice
will then equip it! Ctrl + click to clear works as well.

A bunch of tweaks occurred to get that working; I can't remember all of
them. Note that I finally moved character_support.js to /lib where it's
more useful. Also, fixed a bug where the slot level of slots with a
default levelbox was being under-computed.

Finally, the codex, new codice dialog, and character summary page all
have new-fangled support for bonuses! These are presented in the form
"+1 devotions.any", which turns into a +1 increase in
character.devotions.any. There's a decent amount of validation so
creating codices with bad bonuses shouldn't be easy.

Also, despite my first pass attempt, I've implemented this so that
bonuses are being dynamically added in to the character summary page.
This means that if a codice's bonuses change, all characters will
update. It also means that you have to actively wrap your character
object with CharacterSupport.withBonuses(), or else you won't take the
updated numbers into account. So far I think I've hooked that up as
needed, but maybe something got missed.

Woot!