Ss3 upgrade

This request contains all changes needed for compatible with SilverStripe 3, the source of the commits is from @silverstripe-big-o forked repo and cherrypicked bits from sheadawson forked repo