A Textbox with text wrapping and box resizing (subclasses IText)

For [Issue 187](https://github.com/kangax/fabric.js/issues/187). This is a more fully featured implementation than [Pull Request 725](https://github.com/kangax/fabric.js/pull/725). 

I need this feature for my product, so I fully intend to support this class if it is made official.

### Demo
Check it out [a demo](http://jsfiddle.net/jafferhaider/51u08n39/9/).

### Summary of features
- Subclasses IText, so gets all of its goodness.
- Text wraps as user types and/or resizes a Textbox. Works with all textAlign values.
- User can change width of Textbox. Height is automatically set based on text wrapping. Font size and scale does not change.
- Support for resizing in Groups. Only the width of a Textbox changes. The Textbox updates its scaleX/Y values to undo scale values of its parent Group so that font size remains the same.
- Refactored the ton of `this.text.split(this._reNewline)` calls into a function that gets overwritten by subclasses.
- Fixed bug in Justify text (was present in both Text and IText classes).
- Caches text wrapping info for fast performance.
- Tested on latest versions of Safari (OSX & iOS), Chrome (OSX & Win), Firefox and Internet Explorer.

### Open issues / TODOs
~~1. Inheritance bug in IText.toSVG(). The `callSuper` in `_setSVGTextLineText` goes into a recursive loop if called on a Textbox object. It works fine if I replace the `callSuper` call with a call to a copy of `Text._setSVGTextLineText`. Have you encountered something like this before? Any opinions on how to fix this?~~

Please list changes that you'd like me to make before this can be made official. I saw in the other pull request that @kangax wasn't too sure about the 'Textbox' name ... we can change it.
Bug. Textbox requires that this 'i' not be added to charIndex. It is added because every line in an IText ends with a newline character, because of which this 'i' is added to charIndex. I've uncommented this and overridden the _getNewSelectionStartFromOffset() function in Textbox.