Updates

+ Service is now an abstract object.  It must be implemented via it's
extent() method
+ Added Service.Socket.js
+ Added Service.Widget.js