Add a Map data type.

There are currently no operations for it.
Add map functions and make list functions work for maps.

Needs more docs.