Refactor to use TinyMCE 4.0 style plugin declaration.
Improve the requirements a bit.
Use a pointer for the toolbar actions.
Adjust style to follow TinyMCE conventions and several other functional
improvements.

* Handle multiple shortcodes placed on the same page. Fixes an issue
where content between two shortcodes would get deleted.
* Use a generated uuid that is not tied to position so that adding
multiple shortcodes on the fly doesn't is done in such a way that the
correct shotcode is aways updated.
* Rename various functions to better communicate what is going on.