Order factory implementation

This implements a new factory, to create order objects. This allows for different types of orders, making this the first big step towards the full credit notes implementation in #3164. More methods can probably be extracted from the (now) abstract `WC_Order` to `WC_Order_Simple` extending class, but this will become clear as soon as the actual implementation of credit notes develops further.

I took a similar approach with deprecating the possibility to directly instantiate a new object of `WC_Order` as we did when we made `WC_Product` and abstract. This will fire a `_doing_it_wrong` deprecated notice, the new `get_order()` function as suggested alternative.

The use of that deprecated use of the class has been changed in WooCommerce core as well.