add function literals

quite hairy, but also awesome to have.
cleanup a little
add tests for fn literals
Merge pull request #47 from heyLu/fn-literals

Fn literals