Improved server-side animation system.
Fixup some emit text.
Add and implement ServerNetworkHub.
Send animate message to server.
Client-side animations.
Keep entities graphics timed with animation.
Remove unused code
Support 0 duration animations.
Reverse animations work.
Lockers now animate properly.
Clean up animation logic considerably using animations lib.
Correct exception throwing code.
Synchronize animations.

- Update PROTOCOL.md: we've added "elapsed" to "animations" command.
- Update SpriteAnimation: client accepts elapsed and uses that to prime its animation routine.
- Fixed some random bugs with tile frames being set incorrectly during animation.
Only run animations are assets are loaded.

For lack of async await, we have a generic 'ready' future that is triggered after assets are loaded.