Implementing best practices

There are still a LOT of things to do to implement the best practices in Woocommerce, but this is meant to be a "first" step.
Woocommerce should move from the static and singleton approach to a real OO one, following the SOLID principles