Check special MATLAB types first

Instead of attempting to put objects into MATLAB naively first, we
shouuld perform any special operations - such as conversion via
MatlabControl.
Create MATLABCommands interface

MATLABCommands plugins are singleton plugins for adding utility methods
to MATLAB.
MATLABService supports MATLABCommands

MATLABService is now a SingletonService typed on MATLABCommands. It is
responsible for querying all MATLABCommands and creating appropriate
variables within MATLAB to access their utility methods.
Create MATLABOptions plugin

Added an OptionsPlugin for controlling MATLAB configuration.
Refactor MCL Utils to use MATLABOptions

MATLABOptions exposes configuration preferences for how MATLAB should be
launched. To take advantage of these, we needed to update how
MATLABControlUtils is being used:

* MATLABControlUtils is now functional, accepting various parameters (or
  just a MATLABOptions directly) and using these to construct a
  MatlabProxy as appropriate.
* MATLABBindings and ScriptEngine now need access to a Context, to get
  the OptionsService and MATLABOptions to use in constructing proxies.
Fix up MATLAB ScriptEngine

* Removed unnecessary while loop
* Instead of using ans, now store script in temporary variable.
Add MATLAB decode implementation

All return values from MATLABControl come back wrapped in Object arrays
to allow for multiple return value functions. In the case that we have
one return value, the decode method will now unwrap this array.
Fix MATLAB context creation in tests

Consolidated context management to setup/teardown methods.
Make MATLAB UI displayed by default

If the UI isn't shown by default, it's probably going to be very
confusing and appear as though nothing is really happening.
Merge branch 'matlab-commands'

Adds extensible command plugins to expose static utility-like methods in
MATLAB.