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 
On the same thread, should we have a test if a user is not enrolled, gets to the verification flow / payment flow, and completes the flow? Should not be likely but imagining:
1) User opens two tabs: find courses, and dashboard
2) User enrolls in verified course
3) User starts flow,
4) User unenrolls in second tab from "Honor" mode
5) User continues payment. 

Tested, and it works, just not sure if we have a test for that (or maybe if the logic is in the data models, it's unnecessary here?)