Promisify config options which accept functions; Review tests; Minor refactoring

- Internal methods which depend on config options are now only tested through the `Configuration options` suite
- Make sure configuration options are tested through actual streams and not just through the internal methods
- Add internal _error() test suite