Handle unauthorized errors

Resolves #59. However, doorkeeper doesn't properly handle 403s where a user has a valid token, but the incorrect scope to access a resource. I'm working on a patch to fix that.
Should we add more tests in here? I was playing around testing how this worked and I've added some thoughts via: https://github.com/camallen/Panoptes/commit/258e1f331564bbf2df01210d44620def6460f65e