api: simplify assignment permissions and add tests

closes CNVS-13941

test plan:
- as a teacher, create an unpublished assignment and a published assignment,
  and make sure you can see both in the assignment show api
- as a student, repeate the test and make sure you cannot see the unpublished
  assignment.
- as a teacher, create an assignment, note it's id, delete it, and then try to
  edit it with the assignment edit api. you should not be allowed to.

Change-Id: I760290dc23ab0787fbcdda0570b71f57e0248e73
Reviewed-on: https://gerrit.instructure.com/37631
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>