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 
There are tests for this on line 1159.  The logic is the same for verify now, verify later, and payment confirmation, so there's one test method for all three end-points.