Refactor adding/removing tags from tickets
Refactor POST Tickets/Edit, fix NPE when ticket doesn't exist

Reduced indentation levels, dropped arguments onto next line (to reduce
line lengths).

Additionally, because of the refactoring, it was noticed that there was
a null dereference when a ticket didn't exist in the database,
circumventing the work done to give a better error message to the user.
Make IDs required for TicketVM and TagVM

This way the controller doesn't have to check the Ids for existence, it
can simply assume that they exist and have the model verify itself.
Remove `ToList` on several authorization calls

It seems simply unnecessary in all of these cases.
More refactoring and code restructuring
Make a TicketCreateViewModel

Instead of binding on a subset of fields of the regular view model, it's
better to have a view model specifically crafted to perform the task of
building a ticket. This makes code a bit clearer, simpler, and less
error prone overall.
Add newline at end of TicketModels.cs
Make ProjectCreateViewModel and reduce DB calls

Same reasoning as behind making a TicketCreateViewModel. This enables
the code to be a bit more clear and simplified.

Also, tried to reduce the number of DB calls by using db.entry instead
of actually loading the things from the DB.