Refactor the Submission Controller create() method

There is still more that can be done, but this consolidates some of the
if blocks and simplifies the conditions so it is easier to understand
what is being checked.  It also removes some old code that is no longer
used.

This code is what handles receiving a submission for an assignment.
It is responsible for validating the submission file is present and has a valid file
extension based on the restrictions put in place by the course teacher

Also add a new test to verify that the submissionscontroller can be used
for submission of an attachment for an assignment

Fixes CNVS-15491

Test Plan:
1. As a teacher, create an assignment in a course that accepts a file upload
2. Limit the file extensions so that you have a test file that would not
be allowed
3. As a student, circumvent the client side javascript and make a submission with no attachment
4. Verify that the submission is rejected
5. circumvent the client side javascript and submit a file with a disallowed extension
6. Observe that the file is rejected for submission
7. Upload a file with an illegal file extension to the files area
8. Return to the assignment, and submit the file from the files area
9. Observe that the file is rejected
10. Make a submission with a valid file and observe that the file is accepted for submission

Change-Id: I3e15224f51369d305392ff14c7dc859571cecf5b
Reviewed-on: https://gerrit.instructure.com/42140
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Benjamin Porter <bporter@instructure.com>