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.
@zzmp We have to use some character to do it, and this makes it consistent with Rust's own format string style. I can work on supporting escaping.

@reem Accomplish what?