Implemented chunk pregeneration.

Changes in this commit:
  - 'arc unit' updated to resync instead of generate projects.
  - Build/Main.proj removed.
  - Tychaia.Disk.* projects all moved into the main Tychaia project.
  - Protogame and Substrate updated.
  - Procedural generation performance analysis updated for new chunk size.
  - Implementation of SimpleLevel that uses BinaryReader/Writer.
  - Move profiler registration into seperate Ioc module for test purposes.
  - Addition of Tychaia.Tests project.
  - Implemented FlowBundle serialization / deserialization.
  - Fixed compile issues with release build.

Currently the following outstanding bugs are present:
  - Level loading / saving is really slow.  This needs to be either improved
    or moved onto a seperate thread (ideally both).
  - Pregeneration needs to generate 2D information only as it will only be
    used for wider economy simulation.  3D information is only needed on a
    chunk level and only while the player is actually viewing the world in
    that area.
  - Procedural generation in general is still reasonably slow compared to
    what it needs to be.  Investigate whether or not uniquely caching the
    generated data for RuntimeLayer is feasible and whether it will have
    a speed improvement (i.e. A -> B, A -> C, B -> D, C -> D causes A to be
    generated twice at the moment; see if we can cache A so it only gets
    generated once).
Implemented faster serialization / deserialization with protobuf-net.
Added missing files to definitions and added startup test for large generation
Started work on generation planner.
Implemented wastage calculation for generation planner.
Finished world pregeneration.
Moved Tychaia.Content back into the main repository.
Implemented chunk pregeneration.

Summary:
  - 'arc unit' updated to resync instead of generate projects.
  - Build/Main.proj removed.
  - Tychaia.Disk.* projects all moved into the main Tychaia project.
  - Protogame and Substrate updated.
  - Procedural generation performance analysis updated for new chunk size.
  - Implementation of SimpleLevel that uses BinaryReader/Writer.
  - Move profiler registration into seperate Ioc module for test purposes.
  - Addition of Tychaia.Tests project.
  - Implemented FlowBundle serialization / deserialization.
  - Fixed compile issues with release build.
  - Implemented faster serialization / deserialization with protobuf-net.
  - Added missing files to definitions and added startup test for large generation
  - Started work on generation planner.
  - Implemented wastage calculation for generation planner.
  - Finished world pregeneration.
  - Moved Tychaia.Content back into the main repository.
  - Update language asset.

Test Plan:
Run the game and start the "Pregeneration Test".  It should show progress going up to 100% and afterwards there should be files in %appdata%/.tychaia/saves/test.  If you start the game by clicking "Generate World", the chunks should be quick to load and not require generation (they might need to calculate the vertexes and indices, but you won't see the normal performance penalty associated with generating chunks).

You'll notice that any chunks outside a 3x3x3 radius won't be generated properly and might just have a single set of vertical blocks.  This is because it generates within a 3x3x3 radius it generates chunks and within a 10x10x1 radius it generates a 2D map, which is currently not stored seperate to the actual chunk data (but will be in future versions).

Reviewers: Sabre070

Maniphest Tasks: T98

Differential Revision: http://code.redpointsoftware.com.au/D63