feat: more flexible and standalone API

* TradingFactory attributes initialized in __init__(), so that there are
  not shared between instances
* Allows portfolio managers to be instanciated without properties
* Allows more flexible signals format
  for `trade_signals_handler` (like omitting 'sell' or 'buy' key)
* Understands human frequencies like 'every 3 hours', 'at closing', ...