Merge pull request #129 from ngunn/dev

List.js minor bugfixes (for review)
Singleton Nil consequential change to compiler (minor)
CompileToJS generates objects using "ctor:"... for all non-primitives.
Added special handling for lists

Might be better to have a separate tag instead of: Data "Nil"

Test case:
main_join = let f x xs = (x::xs)
    in asText $ zipWith f ['c','m','t'] ["hop","ill","ape"]

 before fails with "xs: undefined".