Update to Shard v3.*

* Moved RestController into Listeners
* Added code formatting and mess detection
This seems to occur in `shard-module` but not in `shard`. I see that there's a helper function to set it if it's not present: https://github.com/zoopcommerce/shard/blob/master/lib/Zoop/Shard/User/DataModel/PasswordTrait.php#L62

It must not be called though? Or does `shard` have a special way of calling this? eg. is there a config item not being merged correctly?