Implement the canvas as a proper VS editor

Related Issue: https://github.com/Particular/ServiceMatrix/issues/242

Implement the canvas as an editor on the slnbldr file. This allows the canvas to inherit standard document behavior, e.g. the details such as position or pin status are persisted across solution reopening, its visibility doesn't depend on UI (context - normal, debugging, full screeen, etc).
Implemented as a file-less editor without save behavior.

Editor is auto opened when the solution is opened if not open already, but if it was opened when the solution was closed its status is maintained.

Removed the event-driven updates to the canvas. Being an editor it is closed with the solution (as opposed to being a ToolWindow, which was a singleton), so it doesn't need to hook up to solution events to reload the NuPattern model: when it's opened it loads what's needed and hooks up to model changes, and when it's closed it just removes handlers to model events.