enroll-stripe-coupons: Add coupons django app to handle coupons & pay

Request payment upon enrollment: The feature is activated by adding a
course mode `pay_with_coupon` to a course.

When activated, when a student attempts to enroll on a given course
session, it gets to apply a coupon reduction if he has one. A Stripe
payment form is presented to him, and he only gets to actually enroll
once the payment is cleared. Staff is unaffected. The coupon code is
stored with its enrollment.

Also allow to configure a different price on each course, using the
`CourseMode.min_price` attribute.

Applying the `pay_with_coupon` mode to a course:

```
from course_modes.models import CourseMode

CourseMode.objects.get_or_create(
    mode_slug='pay_with_coupon',
    mode_display_name='Pay with coupon',
    course_id='CodeCoalition/CC-101/test',
    min_price=125)
```

Creating a coupon:

```
from coupons.models import Coupon

c=Coupon.objects.get_or_create(price_reduction=30, coupon_name='edX')
```

Configuration parameters:

* `STRIPE_KEY_PUBLIC` and `STRIPE_KEY_SECRET`: Stripe API keys
auto-login-url: Allow to generate URLs to log users automatically
theme-v2: New design - Theme v2 & mailchimp integration

* Homepage
* Footer changes to Django template (vs mako)
* Mailchimp: Integration for home newsletter form & subscription
* Mailchimp: Subscription to groups on user list
coupons: New design of form & new payment flow with custom Stripe form
theme-v2: Allow to display "anytime" for start date with default value

On courses description (about) and listings (/courses)
theme-v2: coupons: Display price on courses list and details page
theme-v2: Add mailchimp script to update user group enrollments
theme-v2: Pre-check honor code on registration to allow to hide it
coupons: Allow to specify an end date, course_id and max nb uses