E1482. Rewrite Project E1401

Project E1482 includes merging of E1453 and refactoring assignments_controller using a form object. We have made assignments_controller using form object. Please provide your comments
It may be easier to make the default attributes a blank hash, rather than nil, that way you can instantiate this object with only partially defined attributes, and any which are not defined are set to the default value, such as `Assignment.new`. For example:

```rb
def initialize(attributes={})
  @assignment = Assignment.new(attributes[:assignment])
end
```

Then you don't need to check for nil on the overall attributes, rather you can check each attribute (assignment, due_dates, etc.) for nil.