made hubconnection as singleton and added promise property to Hub

This will allow single Hub connection to be used for multiple hubs. Adding additional property to Hub for Promise returned by connection.start() will allow it to use safe invocation of method on hubs. This will guarantee that a connection is already done.