Added object controls visibility (github issue #552).

`_controlsVisibility` is an object which is defined in object_interactivity.mixins.
An instance of that object is lazily constructed in `_getControlsVisibility` in order to assign a new instance of `_controlsVisibility` for each instance of `fabric.Object`. (if we had it simply defined in the prototype, it would be the same for all instances of `fabric.Object`)
This could be simplified creating `_controlsVisibility` upfront in `fabric.Object` `initialize()`, but this way the logic related to `_controlsVisibility` would not be all self-contained in object_interactivity.mixins module, which I think is preferable (`fabric.Object` should not be aware of anything which is added by mixin modules).