Add optional automatic cursor coloring and other IText fixes

Cursor is automatically colored depending on the pixel colors underneath the cursor. This accurately replicates the cursor functionality of native Windows applications such as MS Word.

Feature is initialized by setting ```cursorColor``` to ```'auto'```

Added optional property ```cursorColorDataEl``` which when passed an external canvas or image object will combine the pixels of the specified element with the pixels of the Fabric instance when determining the pixel colors for the cursor.  This is very useful if the user is overlaying a Fabric instance over an external image or canvas. (e.g. A users application uses Fabric to provide text manipulation over the top of a photograph)

Example 1:
![ex1](https://f.cloud.github.com/assets/6388079/1919561/343f1b24-7dd6-11e3-8661-850a64947559.jpg)

The imagedata behind the cursor is extracted, inverted and then replaced ensuring that each pixel of the cursor is at the maximum contrast level to the pixels behind it.

Example 2:

![ex2](https://f.cloud.github.com/assets/6388079/1919588/912dc876-7dd6-11e3-8a80-d61640b9e274.jpg)

Cursor pixel color correctly reflects rotation/scaling

Example 3:
![ex3](https://f.cloud.github.com/assets/6388079/1919612/e4926990-7dd6-11e3-9b63-e9e58d16e9f0.jpg)

When the cursor is over another Fabric object the cursor pixel color is correctly updated

Reference issue: #1098 


OTHER FIXES:

- Add text:selected event, useful when building UI's with interactive text style controls
- Fix for renderAll firing for every IText instance when an IText object is selected or deselected. fixes #1100 
- Fix for IText selection behaviour when switching between IText and other fabric objects.  When an IText object is deselected, object.editable is set to false so that the next time it is clicked it does not automatically enter editingMode.  After next mouseup event object.editable is set back to true.
- Hidden textarea is added on enterEditing and destroyed on exitEditing.  This increases performance when using lots of IText objects. Previously one was created upon initialization and was left hanging around in the DOM when it is only ever needed during editing mode.
- Fixed text selection when rendering fonts of varying sizes (bug introduced in my previous PR... Sorry!) fixes #1104 
- Reduced calls to ```fillText()``` on I-Text textLines with varying character styles.  fixes #1105 
- Prevents double rendering in I-Text objects

The last two fixes reduce average I-Text object rendering time by more than 75% when using varying character styles.