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 What exactly do you mean by softer, in terms of the ANSI colors and attributes? I don't think there's anything that's supposed to indicate a softer color.

@reem No, the format strings don't support colors/style yet and also choosing colors based on the status makes this complicated. My goal is to eventually make the format strings expressive enough to do this though.