Make it possible to pass custom middleware to the Broccoli server

Very useful for things like adding CORS headers, like so:

```javascript
var corsMiddleware = function(req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', '*')
  next()
}

broccoli.server.serve(builder, {host: 'localhost', port: 4200, middleware: [corsMiddleware]})
```