Added leveling to the game.

TODO: Change stats on level up
Made level ups harder and added level up message
Added player LOS.
Added hjkl as navigation.
Removed MovesLeft.
Finished attack/damage upgrade

We will need to change the attack and damage values to be higher.
Added 2 z-levels, can navigate between using...

space and left shift. Will add logic so you can’t go below level 0 and
that when you go up it will generate a new level.

ALSO, added lein-run.sh, imo help digest clojure exceptions.
Added level creation logic to moving up and down.

Won’t go below level 0, and creates (and caches) levels when you go
above 1 (currently just creates 2 levels on start).
BUG: There’s a bug where tiles aren’t getting rendered and just show up
black, seems to happen in the same places (top right column?) and
regardless of whether I have full sight, los, or regular see-through…
Fixed weird rendering bug (added .end renderer)
Added [/] as down/up, & re-added LOS vision.
Skeletons now only chase if rj.u/can-see?
Moved init entity stats to config.clj.
Added def to take-dmg calc.

Damage taken is rand-int[1, (dmg-def)] (inclusive).
Moved world constants to config.clj.
Added a basic debugging macro, ? in utils.clj.
Added system<<components macro for cleaner init of entities.

See usages for how to use, but basically pass the system and entity,
and a vector of vectors containing the keyword name of the component
and the map for the map->Comp constructor.
EG: (system<<components system e-this [[:item {:pickup-fn
pickup-item}][:torch {:brightness 2}][:broadcaster {:msg-fn (constantly
"a torch")}]]
Cleaning up messaging related stuff.
More cleaning up, this time to destr and msg.
Merged character-building and master

Added leveling and other stuff.
Added random stats on level up