Make auth middleware extendable

Hi, 

this PR is a probosal of mine how auth middleware can be extented by the grape user.
If it might be usefull I would finalize this draft with spec's and a DSL extenstion.

What I have in mind is at the end some thing like this:

```ruby

class MyAPI < Grape::API
  register_auth :my_digester, MyAuthMiddleWareClass, ->(settings) {  [settings[:a], settings[:b]]}

   auth :my_digester, a: "1", b: "2"  do |..., ... |
  
   end
end

```
I like the German `mittelware` :)

More seriously, lets think about whether this auth-specific stuff can be taken out altogether?