Implement #all for authorities and refactor

This addresses #24 and also refactors a lot of code.  Specifically, the `index` and `search` actions of the terms controller are now made explicit so that calling index returns a full listing of terms, versus search which takes a query.

Because not all authorities may allow an `all` method, it defaults to nil by the parent class.  Those authorities that do allow it will override the method to return all the terms in the authority.  For now, a null json response is all the user gets if they try to call `index` on an authority that doesn't support it.  However, there could be more informative error responses in the future.  See #58