Refactor from Spree 0.30.x to 2.3.0.beta

It’s partly based on updates to support Spree 1.3 by @fonemstr. This
commit keeps original migrations so it can be upgraded. It comes with
100% spec coverage.