Time Rotation

- Added `rotate` options
- Refactored so the stream error was available on `this` to reduce complexity.
- Updated docs
- Added test for `rotate` option
- Added sanitization for file names to prevent `Path.sep` from being in `format`
Is this necessary? Doesn't the schema already restrict `period` to these values?