Fixed: Can set earlier due date as an individual due date extension and related bugs

This pull request fixes [LMS-6563: Can enter in earlier date in Individual Extension](https://openedx.atlassian.net/browse/LMS-6563), which was also mentioned in the individual due date extensions feature PR #2062.

Now an error will occur if the instructor attempts to set a due date that is earlier than the original due date.

I also fixed two related bugs that I noticed while working on this:
* The API would allow setting a due date extension on a unit that had no due date at all. This now returns an error.
* If one set an individual due date extension, then deleted the original due date, an Internal Server Error (500) would occur when deleting the due date extension, and neither a success nor failure message would be shown to the user.

Unit tests are included.

This was done for OpenCraft ( cc @antoviaque ) and falls under their organization contributor agreement.
I like `(unit has no due date)`.

I'm not sure about the test - maybe @carsongee has an idea of how to help. You could also try asking today in IRC (#edx-code).

I think it would be better if you put this test actually into your PR so the discussion can happen there. Having this discussion in line at a different point in the code is not ideal.