Refactor JSQMessagesBubbleImageFactory to enable custom images/insets

The factory is now instantiated, rather than used as a set of static methods.
The default init function creates a factory which behaves exactly like the previous version.
The two-parameter init function takes a custom image and user-defined strechable regions.

Two new unit tests cover the custom image constructor
remove unexpected whitespace