Requests with insufficient scope should respond 403 Forbidden

This resolves #243 by returning `403 Forbidden` along with scope descriptions when a token has the incorrect scopes to access a resource. 
Use nested module/class definitions instead of compact style.