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 refactor is already planned. I'm rewriting all the mqtt parsing & generating logic.