Fixes #199

Fixes #199

Summary:
- extracted default options and logics for validation and modernization into options module
- extracted logics for building internal servers (mqtt, mqtts, http, https) into interfaces module
- server internally uses modernized options
- if `interfaces` is not present in options, it's constructed from legacy keys, otherwise left as is
- if `credentials` is not present in options, it's constructed from `secure`, otherwise left as is
- all conserved options keys are shallow copied
This is currently offered as a public API. If we want to refactor it, we need to do it providing backward compatibility.
Ideally that belongs on its own file.