Refactor recording api methods and fix logic

Refactored code of recording api setup, teardown, and
endpoint functions.

Added a get_current_state_str() method to Multimedia to make some code
in recording api cleaner.

Fix to recording api logic determining next_id.
Fix to test_server.py teardown to undo patching to media_dict

closes #629
It's probably a good idea to test for exact responses.

```python
assert response_data == {'recordings': []}
```

There are a number of other places which should be changed to this style as well. I'm guessing it wasn't done initially by the other student because maybe `unittest` doesn't provide a nice way to compare dictionaries. Pytest on the other hand will do this automatically for us.