Prepare for a multi-method implementation of printing expression values.
Update to om 0.8.0-beta5
Implement print-value multimethod.
Factor out some functionality.
Rename expression index variable appropriately.
Removed unnecessary map-index call.
Fix string printing.
When printing expression values, prefer using 'print-str'
Remove some duplication concerning building of mirror instances.
Remove unnecessary string printing method, use pr-str to print readably.
With our new flexible printing scheme, we no longer need to 'print' the value of the user expression.
Remove unnecessary 'do' block, wrap user expressions in a 'set\!' expression rather than a def.
Move *out* and *return* out of the user namespace.
Rename some stuff.
Refactor and rename last-line-number to total-lines.
More renaming, attempt to replace domain specific functions with general functions and compositions.
Add doc strings to a bunch of functions, fix broken composition.
Consolidate.
Use js/undefined as the initial value for unevaluated expressions. This allows us to get rid of the :evaled key in user expression maps.
Move these general purpose functions to util. Use clojure argument naming conventions where possible.