async. user roles and server side authorisation

Introduce async library for socket parameters.  Sockets now have roles.
 Authorisation scheme implemented on the server side such that socket
operations are now rejected if your role does not have the appropriate
permission.  Note that for now, default role has all permissions set to
true.