Added vulcan middlewares support.

I would ask for something like this:

```
type MiddlewareSpec interface {
     ToJSON() ([]byte, error)
}
```

and provided some common plugins as implementations (e.g. RateLimit, ConnLimit, Auth).