Update for 508 compliance

Change orange headings and blue footer links
to provide enough contrast

Add titles to links

Add systemName to the window.cache.system.name
so that it can be used throughout the application,
including in alt/title tags

Partially fixes #127
fix to allow name synch from corridor

This fix ensures that names are updated in user profiles. Previously only photoUrl,title and bio were being synched
Merge pull request #182 from brandtheisey/sprint12

fix to allow name synch from corridor
Color and class for 508

Change colors to have enough contrast for 508 compliance

Change id's to be unique for file uploads -- actually
remove the ids and change them to classes instead so can
be reused across the app.

Change <a href="#"> to <button> so that there's no
dangling/empty links.
Add title to input, textarea

Title is needed for 508 and screenreaders, or a label with
a `for` attribute.

Modify the MarkdownEditor component to pass a `title`
option to the template, and render the title on the HTML
textarea element.
Adjust button colors

Make buttons 508 compliant with stronger contrast

For #127
Add person's name to alt text

Query the owner's name, include it in the API
response, and then display it in the image ALT
text.  This is needed for 508 compliance #127
Add user names to img alt tags

For screenreaders/accessibility and people who can't
view images/photos, we need to include an alt tag that
has the user's / owner's / volunteer's name.

This commit refactors the `addOwnerName` function into
a user utility, and then calls it from project and task
metadata functions.

Update the rendering of tasks to show the alt text.

Finishes what's requested for #127.
Add 508 improvements to sprint12

Merge branch 'sprint12-feature-508' into sprint12
Upgrade select2 to v3.5.0

Be sure to run `git submodule update --init`
Set select2 width to fix placeholders

Placeholders weren't rendering correctly when they're
initially hidden.  The select2 people say this is
fixed, but it isn't.

The ugly hack is to set the width of each input
explicitly.  I hate mixing CSS with JS, but in this
case there doesn't appear to be any other way to make
it work.

Fixes #161
Merge branch 'sprint12' into sprint12-reset-password

Update the reset password branch to have the latest sprint12 changes