Interpret hash and refactor rendering methods

See commit messages for a bit more explanation, but basically this will allow you to pass in hashes as data which will be parsed and rendered correctly for Erlang to interpret. Works great!