[MJ-966] edit_item refactor

The previous version was dispatching based on the URL, content id, partner id, and item id. This one disposes of the content id. The behavior in this branch is as follows:

* If the URL is `/prm/view/edit`, then then all other parameters are ignored and the "Add Partner" form is shown.
* If the URL is `/prm/view/details/edit`, then partner id must be valid, as we need to know which partner to associate the contact to. 
* If 0, "", or no contact id is given, it is assumed that a new contact is being created, and the "Add Contact" form is shown.
* If a valid contact id is given, then the "Edit Contact" form is shown with its fields populated with that particular contact.
* In all other cases, a 404 page is displayed

I also removed the requirement to add a primary contact when creating a group, since @galitskyd mentioned that was technically a bug. 

Depending on how this merge goes, I plan to do similar work on `save_item`.
Can't all of the messages displayed in the `except AssertionError:` blocks be included as the third parameter to `assertRaises`?