Updated /task/edit to take a route.

Now there is a route for /task/:id/edit and the route gets initialized
everytime the user goes to click on edit.  The DOM then will update the
button to 'show' alerting the user they can click to go back to the show
view, but if they do they will lose any unsaved changes.  Then the out
of scope click event ('viewEvent' I called it) will trigger the route
for the show view.
Syntax update, and typo fix.
Bringing over existing data to task/:id/edit form.

- The edit form now holds the live data if it previously existed in the
  show view for the task.  (re: tags)
- Minor updates to the hyphen delimited task tags.
Moved organizeTags function over to util method.

We were using it in many places, and it was the same code.  It's a no
brainer to make this a utility method.

TODO:
- Allow someone to pass in @obj.key and that is the key that we set the
  properties on but we return out @obj as a whole.
Comments added and experimental arg removed.
Removed uneeded debug log.
Update method to remove passed in object.
Merge Dain's task work. WIP.

This is a merge of 'sprint8-ready-merge-task-show'
into sprint8-merge.

The functionality is not yet fully working;
need to refactor the edit functionality.  But has
Dain's changes merged, with some tweaks to get
the madlibs tags to work.

Also updated the madlibs to read better.
Rewrite task edit to a sub view

Since all of the data is pretty much there already,
just render the edit view within the current context
of the task show view.  When you go back to view the task
after going to edit, then do a backbone.navigate().

Fix a bunch of css selectors, and how different elements
are shown/hidden.
Fill task edit with existing selections

Correctly fill each of the select2 elements in
the task edit view with the correct values (those
being the values that were selected previously for
this user).  This wasn't working before, but seems
to work now.

Location needs to be fixed as it isn't consistent
with the new task view, and the new task view should
ask for a location from the list.
Store locations for tasks

Locations weren't being stored before when a new
task was created.  They are now being stored.
Correctly render locations in edit view

The locations were put in the wrong box due
to a typo, fix that.

Update some styling so the locations get rendered nicely.
Backend correctly server tasks/:id/:action

Wasn't correctly offering the route, fix in routes.js

Also fix the action logic in the browse app to pass
the edit action to the controller.
Remove commented out code.
Task save/update logic

Figure out the "diff" of the tags currently selected
in the edit view from the tags that were previously
selected/stored.  Delete the ones that were
removed and add the ones that were added.
Update model metadata as well.

Redirect back to the task once the edit finishes saving.

With this, task edit view is finally functional.