Refactored the data objects in the API

This makes it more explicit what a price and a pricestep is. The normalized price has disappeared completely (no usage). Also there is now a PriceUpdate object that coulpes a Price and a bidNumber. Furthermore, all the objects are immutable and can safely be used by multiple threads.

Also added Builder objects to the Bid types for easy creation of new Bids.

Warning: this breaks all the other code! Lots of fixing is needed after this change. So don't accept this right away, but this way I can share this with you guys.

Also I've not tested all the functionality, but the complex functions are copied from the original. Please test this first.