Clean up project Code validation; Check site role at login; Fix MongoDecoder of '___DOT___' => '.'

projectCode validation when creating a new project:
projectCode validation updated to check that it starts with a letter, and only contains lower-case letters, numbers, or dashes

user must have a valid role to log onto a site (assumes database migrated to populate siteRole mapArray

Fix MongoDecoder to properly convert keys containing '___DOT___' into '.'
Fix UserModelBase to properly merge site roles and system roles into an array