Update to Shard v3.*

* Moved RestController into Listeners
* Added code formatting and mess detection
I'm not sure why this isn't auto-triggering on flush.

@superdweebie would you mind taking a look when you get a chance? eg. comment out the above line and it will throw an error.