Implemented custom format strings.

Format strings can contain the fields `{method}`, `{uri}`, `{status}`, and `{response_time}`.
Loggers can be created using
```
Logger::new(from_str(<format string>))
```
to use a format string, or
```
Logger::new(None)
```
to use the old default format. Calling `from_str` on an invalid format string returns a `None` (as specified in the `FromStr` trait), and therefore invokes the default format.
That wasn't working, so I've moved them to the end of the file. The format module is all auxiliary stuff anyway, so it doesn't really need its own auxiliary module.