Cleaned up client start process.

A few things to note:
- The client will now save worlds correctly as its world was never set
  before. This needs to be fixed to use the SpoutClientWorld container.
- Depending on the plugin, the client will failout with sync chunk
  generation errors. @raphfrk needs to harden the check some more. Since
  Vanilla is a heavy plugin (heavy generators), it never gets this error.
Signed-off-by: Chris Sanders <zidane@outlook.com>
Switch these around.
Signed-off-by: Chris Sanders <zidane@outlook.com>
Only iterate over all ChunkAggregators once.

There was no reason to iterate over them twice and this results in a bit
of a speedup.
Signed-off-by: Chris Sanders <zidane@outlook.com>
Creates client player when outside snapshot lock
Iterate once when BatchGenerating

Before, iteration occurred twice before to nullify the set material and
mesh. Now it keeps them temporary and then releases as necessary.

Results in another speedup.
Signed-off-by: Chris Sanders <zidane@outlook.com>
Fix wrong synchronization for screen stack
Set mouse status to grab if no input screen

Then set mouse status based on input screen's properties

Also update for API changes
Signed-off-by: Chris Sanders <zidane@outlook.com>
Fixed bad programming such as no @Override, size() == 0, unused imports, final modifiers on private method etc...
Signed-off-by:thehutch
Merging previous changes
Signed-off-by:thehutch