Add expiration dates to Coupon Codes

@chrisndodge @afzaledx Kindly review the changes for WL-135

Thanks
@chrisndodge, the trouble with bokchoy tests is that unlike the unittests, we don't have a "request" object where we can make a POST api call with the required data. All we have available is the browser object and just like any user would do, the way to make a POST call is by visiting a URL, and then clicking the submit button of a HTML form.

What this would mean is that we'd then have to make both both a GET and a POST method for the view. On GET, we'd return an HTML page with a form containing the fields etc. The bokchoy test would then hit the URL, get the page with the form, fill the required values and click on the submit button.

What we did here originally was to mimic something already done in the bokchoy fixtures to create and login a staff user for any course ID  by simply hitting a URL and providing any course ID.

https://github.com/edx/edx-platform/blob/muhhshoaib/WL-135-add-expiration-dates-to-Coupon-codes/lms/urls.py#L535-L538
and
https://github.com/edx/edx-platform/blob/muhhshoaib/WL-135-add-expiration-dates-to-Coupon-codes/common/djangoapps/student/views.py#L1670-L1689

So if we can create a staff user for any course by simply visiting a URL (albeit behind a flag(AUTOMATIC_AUTH_FOR_TESTING) ), it seems pretty much the same to allow making a course a Paid Course Registration, but that's just me.

While we wait for the openedx guys to respond to this, we'll make the GET and the POST, require a staff member to be logged in (@require_level('staff')) to GET and POST to that view.