Handle errors using a _parseError function and using nodejs conventions

e.g. function(error, data)
Prefix 'private' methods
Set a user's role feature
Only allow valid roles/affiliations
Handle 'role' and 'affiliation' changes in presence