Factor out control adding code.
MacShadyUI now responsible for compiling and parsing.

Several changes made in this patch.

- MSState.hs: initMSEffect now takes effectIndex. These are now going
  to be handled on the Objective-C side of things since a new index
  is allocated each time a new Haskell file is tracked.

- MacShadyUI will now be responsible for opening the Haskell file,
  compiling it, calling initMSEffect on the Haskell side, and then
  parsing the JSON and creating the appropriate controls.

- ShadyUIGen is now called MacShadyUIParser. It only does parsing now.
  It should never fail since Haskell-land should never pass it an
  incorrect value.
Basics of plugins now working. Much more to do.
Removed Shady.CompileEffect from MacShady. Now part of shady-graphics.