Stop using letmap and some private variables in updateable-heso

This makes the code a little simpler and more conventional.
Refactor peer, heso, and updateable-heso to be more white-box

These objects are now look like more idiomatic Clojure, being comprised of data
rather than functions. There is also no more hidden data as a result of the
member functions holding closures. This makes testing easier and the REPL and
"dump" web UI more useful.

File naming and module organization is also more consistent. core.clj has been
renamed to heso.clj, to correspond to the actual name of the object in it.
config-file path calculation has been moved to main.clj

This includes integration of pull request #7:
https://github.com/google/hesokuri/pull/7
Remove *letmap-omitted-key* feature from letmap

This is no longer in use - it was being used in order to look at private data
in objects in tests. We are no longer enforcing encapsulation this way, so
a hook to re-expose this data is no longer necessary. We are still using :omit
in letmap, but only for storing trivial intermediate values.
Merge remote-tracking branch 'github/vnext' into objects

Conflicts:
	src/hesokuri/core.clj