Allow handlers to return errors

It would be nice to be able to return errors from handlers.

``` go
m.Get("/", func() interface{} {
	if err := doSomething(); err != nil {
		// replace this
		return http.StatusInternalServerError, err.Error()
		// with this
		return err
	}
    return nil
})
```

~~edit: `nil` does not get handled correctly.~~