[wip] Feature/elastictabstops

Addresses #215.

I became interested in [elastic tabstops](http://nickgravgaard.com/elastictabstops/) after taking a look at the issue above: 

![60RvQ](https://f.cloud.github.com/assets/64050/9714/9d1f9662-44bd-11e2-910b-53864aab98c0.gif)

Since I'm a masochist (and I didn't feel like looking at Nick's Java code), I actually took a peak at [this Python/Sublime text plugin](https://github.com/SublimeText/ElasticTabstops), and did a port of that instead.

It's mostly working at this point. Remaining issues include:

* Performance issues
* Lack of multiple cursor support
* A setting to enable / disable

The reason I'm opening this PR now is to ask @nightwing / @fjakobs questions on preferences for conventions. 

This feature adds quite a few utility (`$`) functions. Is it preferred to stick them in a file somewhere, instead of littering _editor.js_ with them ? On top of that, this only really works when a real `\t` is used. I'm not sure if that's a limitation or a "feature."

I would also like to make a better tab character, one that stretches across the width of the span. A "solution" I came up with was to use 2D transforms to stretch the arrow:

```css
display: inline-block;
transform: scale(4,1);
-webkit-transform: scale(4,1);
-moz-transform: scale(4,1);
-ms-transform: scale(4,1);
-o-transform: scale(4,1);
transform-origin-x: 0;
-webkit-transform-origin-x: 0;
-moz-transform-origin-x: 0;
-ms-transform-origin-x: 0;
-o-transform-origin-x: 0;
```

Unfortunately, this causes interference with certain characters. The other route is to use a background image, but I am really lazy to create separate light and dark pictures. Plus, I would love to just be able to automatically use the same color as a comment. Is this possible, do you think?

As an added bonus, I am absolutely ashamed at the state of the API docs, there's quite a few missing or inaccurate info. I fixed a few of the ones I referred to but in a separate PR I'll need to fix it all up properly.