Add View, an abstraction over jQuery elements.

This might help us untangle the JavaScript code a bit. Inspired by
Backbone's views and Knockout.js's ViewModels.

See docs in the code and tests for more details. Real use case example
in subsequent commits.

It's the first version, we can change it or rewrite it later on
when we discover our use patterns for it.

Also adds Hogan as a templating engine.

Change-Id: Ic70e708328e73d07c82f767d24be5299d94b9699
Overhaul photo upload code (#332)

Make photo upload code more modular. This introduces a new object,
PhotoUploader, which can be reused in various places. See docs comments
in mf-photo.js for details.

Note:

* Cancel link on the upload progress notification does not
  cancel the requests right now. This will be added in the next commit as
  it requires some bigger changes to the api wrapper.
* Photo preview styling is not complete (still doesn't look exactly like
  design assets), this will be fixed in future commits.

Change-Id: I71b6a38d7089427001972d7ffb743791a949983b
Merge changes I71b6a38d,Ic70e7083

* changes:
  Overhaul photo upload code (#332)
  Add View, an abstraction over jQuery elements.