feat(tpu): provide premium for tpu
This PR introduces the "premium" feature for TPU.
Maker is now able to set the "premium" field in the setprice request, which represents the extra amount of rel coins they require from taker.
Additionally, this PR introduces specific order matching behavior for TPU. When a taker request is processed by a maker order, the taker order is treated as a limit order if the taker "buys." This means taker will receive as much as they want to buy, and they will also send the entire amount they offered for the purchase. If taker action is "sell," then taker order is treated as a market order.
It is worth mentioning that for the taker "sell" action, we allow maker to send fewer coins, instead of asking taker to send extra rel premium.
As I can see, we don't show premium in the orderbook so when users are viewing orderbook they see only order prices from 'setprice' rpc and are not aware of extra premium pay. But when 'buy' or 'sell' order is created its price should take into account the premium part. How would user know this part amount? (Should we not show premium in orderbook?)
I am okay with the code in this PR, but I am not sure I am totally understand the whole premium concept (like how it should be calculated and paid). So I suggest adding TODOs to the PR description: I guess, there will be more code to validate and actually pay the premium amount.