LTI: add assignment dates as custom parameters

By sending assignment dates if specified, LTI tool providers can use those dates to e. g. change the behaviour of the tool after the due date.

I didn't provide a test plan as is, but I'm happy to provide one if necessary.
You are going to want to apply assignment overrides to the assignment at some point during this process so that the correct due dates are sent here.  The code to do that is: `AssignmentOverrideApplicator.assignment_overridden_for(<assignment>, <user>)`

I am not super familiar with this code, but from a quick look, it seems like there would be a few ways to go about this.

1. apply overrides to the assignment before it is passed into the `Lti::LtiOutboundAdapter#generate_post_payload_for_assignment` method, in both the application controller and the external tools controller.

2.  apply overrides in the `Lti::LtiOutboundAdapter#generate_post_payload_for_assignment` before the assignment is passed into `Lti::LtiAssignmentCreator.new`

3. pass the user into `Lti::LtiAssignmentCreator.new` with the assignment so that overrides can be applied right here, before pulling the due dates.

I think my vote would be option 1, because the less LTI has to know about overrides, the better, in my opinion.  @wbhumphrey / @bracken do you guys have opinions?