Fix a bug in Individual Due Date Extensions (IDDE).

The IDDE implementation relied on a StudentModule being created for a
particular block in order to set the extended due date on that block.
Since StudentModules seem to be created on demand whenever data is
written to an attribute with Scope.user_state, it meant that if a
homework problem hadn't yet been touched by a student it was possible
that the due date extension wouldn't take effect for that problem, even
if the due date extension was successfully set for the parent unit.

This patch fixes this problem by creating new StudentModules as
necessary in order to make sure extended due dates propogate properly to
all problems in a unit.
Indeed, it works fine without the 'to_deprecated_string()' call.  I've gone ahead and made that change and rebased.  I hesitate to use get_or_create, because for lookup I need only specify student, course, and module, but to create I also need to provide a value for module_type--I'd prefer not to use anything I don't really need in the look up.