Allows for instantiating Order payment, customer, addresses and shopping cart properties with an array in the constructor.
Adds some new tests.
Fixes minor bugs.