Recognizable change event, filtering and control callback args

When content in editor changes, a change event is triggered on
the textarea. If some pluign, or unrelated code changes this textarea,
these will be overwritten. To avoid this one can listen to the change event
of the textarea and update the editor content accordingly. However, one needs
to avoid updating the editor if the change-event was fired from itself. This
can now be achieved by testing if event.source is equal to editor object.

Controls now have an additional option: callbackArguments. This is passed
to the exec-method using apply. I.e. callbackArguments: [ 1, 2, 3 ] will
allows for an exec-method of the following signature: function(a, b, c).

When viewing the HTML code directly, it may be beneficial to filter the content
through a "html-beautifier" like https://github.com/einars/js-beautify/blob/master/beautify-html.js.
Therefore, the html control now use the first callbackArgument (can be any function) to filter the content.