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.
@reem this accomplishes what it tries to, but leaves a lot of edge cases.

@mcreinhard I agree with @reem that this could be a lot cleaner with regex. Can you try to refactor it? Be sure to still hedge against `{{method}}` (escaped brackets), if that is in scope (is it?)