permissions rework

 * permissions are configured in the browser UI instead of configuration file
 * users have usernames and persistent ids as well as passwords
 * server has the concept of events
 * users can request approval from an admin
 * users can edit their user name and password
 * admins can approve requests
 * admins can delete users
 * modifying permissions for the Guest user (added automatically) changes the permissions for anonymous users visiting.
 * event subscription fails without the correct permissions, and when a user is logged out, they are unsubscribed from things they don't have permissions for. client automatically resubscribes when permissions change.