Separate verification / payment flow.

Implemented: Verification / payment requirements flow, including the requirements page.

Still needs:
* Text review (including copy for the enrollment confirmation step)
* Hookup to dashboard buttons
* CSS style cleanup
* JavaScript tests
(in the interest of smaller PRs, I'm going to add the JS tests in a separate PR)

Notes for reviewers:

* The new flow is significantly more complex than the old flow, because the steps can change in a number of subtle ways depending on (a) how the user entered the flow, (b) the user's verification status, and (c) the user's payment status.  I have moved this logic into the Python view and have added tests for the all paths Andy an I identified.

* The Backbone views lazy-load the underscore templates to reduce the size of the page.  Most of this functionality is in `pay_and_verify_view.js` and `step_view.js`.  Individual steps inherit from `StepView` and are responsible for installing custom event handlers.

* Some information is passed to the JS client in `data-` attributes.  In general this is information that had to be determined server-side, for example course mode details, messaging based on URL (e.g. "upgrading to" versus 
"enrolling in"), and template URLs (need to be resolved server-side to include the correct MD5 hash in the filename).

JIRA issues:
[ECOM-720](https://openedx.atlassian.net/browse/ECOM-720)
[ECOM-721](https://openedx.atlassian.net/browse/ECOM-721)
[ECOM-723](https://openedx.atlassian.net/browse/ECOM-723)

Reviewers:
@stephensanchez @dianakhuang 
No need to separate out the var declarations from the assignments. Can just do this
var paymentAmount = this.getPaymentAmount(),
      postData = {...
      };