major cleanup of dependencies

- simulink was considered required; not any more.  Many of the DrakeSystems can run without it (made the fallback to simulating w/ ODE happen automatically). 
- spotless is now optional (and only gets loaded when it's actually used).  Accomplished this by making the CoordinateFrame poly property private, and having an access method getPoly which generates the poly (if spotless exists) on the first call to it. (that means lots of code changes of .poly -> .getPoly)
- lcm was always optional, but got loaded in addpath_drake.  not any more.