New engine with position

Two goals:

* introduce the concept of order position (modeled by `PriceLevel`)
* refactor engine/orderbook, preparation step for market order and more complex orders