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
As far as I can tell there's no way for the server to be in this state? Furthermore, there's no way for the server to recovery from this error even if it did occur without taking it offline.