Major rewrite of the Modulefile Editor

This commit contains major improvements to the Modulefile editor.
Most notably it adds a full-blown TextEditor as a extra 'Source' tab
with mechanisms that ensures that the transient data shared between
the 'Overview' and 'Source' is kept in synch at all times.

The Source editor uses annotations to display diagnostics from the
Modulefile parser. Errors are thus revealed before the user saves
the file to disc.

Several validation improvements was added to the 'Overview'. Names,
versions, and version requirements are now always checked in
compliance with the latest guide lines from Puppetlabs. Illegal
characters cannot be entered.


Closes #504