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.
How would the event be designed though? Would the group dispatch the event on each of its objects? Because it can't work the other way around ... an object doesn't know when it is added to a group.

So, add a template function in the Object class and have Textbox override it with its implementation? Thinking this template function would be called when a non-delegated property on the group changes. Go with segOnGroup(key, value) or do you have a different name in mind?