Add support for TextMate snippets

https://github.com/ajaxorg/ace/issues/1182

this mostly works, only need to fix scope selectors (depends on highlighter cleanup)
and support replacements in tabstops e.g `${1/\s.*//}`