Backend unit tests

The new files here are unit tests for the backend handlers and this is roughly how I envision the unit tests for the backend to look.

To run the tests, just navigate into a directory with a test file in it and run `go test`
Why is this async? I have no idea what's going on, but it seems like there could be some race conditions.