Implement SassScript Maps

This PR implements SassScript Maps and the API as of 3.3.14. There were changes to some map APIs in 3.4 none of which are implemented here.

I think this is about ready to start the feedback process. I'm not a c/c++ developer by trade so there's likely plenty of room for improvement.

#### TODO

- [x] map parsing
- [x] length
- [x] map-get
- [x] map-merge
- [x] map-remove (3.3 syntax)
- [x] map-keys
- [x] map-values
- [x] map-has-key
- [x] keywords

#### Known issues

- [ ] ~~`@debug` support~~ - https://github.com/sass/libsass/issues/223

#### Possible issues

- [ ] list and map variable keyword arguments in same definition (untested)
- [ ] have I sourcemaped correctly?

/cc @akhleung 
This is probably the big design decision in this PR. I tried a couple different approach to this, namely an array of `Sass_Value[2]`. The `struct Sass_KeyValuePair` felt the cleanest and made the resulting code much easier to comprehend.

The approach was inspired by the ruby sass implementation.