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.
This is sort of distracting and makes me want to have FormatText in its own file. If you're against that, can you put this below all of the logic?