Provide an 'overwrite' flag for users

The overwrite flag allows user information to be overwritten
each time a user logs in or authenticates.  This is useful for
integrations with other login systems that maintain the
user profile.  This ensures that midas is always up to
date with the authentication service.
Add comment about session lengths

Put the session var in the config file so that people who
want to change it can change it.
Disable profile editing when remote present

If a remote profile service is being used, disable editing
of the profile on midas.  Instead, allow a URL for the profile
to be set, which is where the user will be taken when they
click on "Edit Profile"
Login needs to be uppercase
Update tag processing, add skills/topics
Cleanup userData refs

Need to get at all the info passed in, not just the
limited fields.  Rename userData > _userData.
Fix t > tag typo

Was finding or creating the wrong item
Change tags to be professional tags
Unbreak the build

Fix the userData reference so that it correctly
processes the javascript arguments
Allow services to overwrite profiles

When overwriting the profile, findOrCreate each tag
and now (newly added) prune old tags away.

Also fixed a bug where a user profile change would cause
tag processing to be skipped -- basically the code was just
updating the user object and returning instead of processing
the tags afterwards.  The likely reason is that it is more
work and callbacks.  Simplified that process by using a helper
function.

Updated config/auth.js to pass the overwrite flag through to
the providerUser object.
Update branch with notifications enhancements

Merge branch 'sprint11' into sprint11-profile-import
Allow nav to use normal click

Allow middle/command click on header items
Use providerUser for clear obj checking

Because the code in one function diverged from the
other, different variables were used which caused objects
to be manipulated that were not the correct objects.

This migrates back to using `providerUser` which makes
SSPI tags work again.
Time out SSPI sessions after 60min

If we don't time out the session, then changes made
on the SSPI provider won't be reflected because
the session never expires.  Timing out the SSPI sessions
explicitly causes this to timeout.
Wrap the date object in new

Sessions may store strings instead of date objects due
to serialization.  Turn them back into dates.
Merge SSPI Improvements

Includes:
- SSPI timeouts to reload profile data from SSPI source
- Ability to disable profile editing
- Set profile link to edit your profile
- Import more fields from SSPI source
- Tags get created or destroyed based on input tags
- Allow SSPI and OAuth providers to overwrite profile fields

Merge branch 'sprint11-profile-import' into sprint11