Initial VillageGen implementation.

WIP, doesn't generate anything yet.
Ref.: 740.
VillageGen: Added well placement and the general algorithm description.
cPrefab can be constructed in code.
VillageGen rewritten using BFSPieceGenerator.

Piece composition is not good yet, the buildings aren't height-adjusted and the road pieces will need special processing. This is mainly for adjusting the per-piece params.
Changed village road generation to use multiple prefabs.
Changed village generator defaults to more reasonable values.
Fixed a NULL ptr failure in GridStructGen.

When the descendant generator returned a NULL structure, the generator would crash. Now it uses a special cEmptyStructure class instead.
Updated PlainsVillage prefabs to the latest Gallery contents.
Village houses are height-adjusted onto the terrain.
Village roads are drawn properly.
Updated SandVillage prefabs to latest Gallery content.

This fixes sand village generation.
Merged branch 'master' into VillageGen.
Added second kind of desert village (FlatRoof).
Changed desert village roads to gravel.
Updated plains village prefabs.

The DoublePlantBed had sponges in wrong places, plus a few cosmetic fixes.
Villages have min and max density setting.

Also made roads use 3+9 scheme, instead of 3+5, for the house connectors.

Fixes #1020.
Updated plains village prefabs.

Expanded the hitboxes so that houses don't touch each other. Fixed minor visual defects.
Merge branch 'master' into VillageGen

* master:
  Fixed profiling flags for MSVC.
  Fixed cWither::KilledBy
  Cleaned up cPlayer::UpdateMovementStats; Wither achievements
  Fixed MCADefrag compilation.
  Derp
  Should have fixed assumptions about entity width.
  Fixed clanging errors.
  Implemented cacti damage
Added Japanese village prefabs.
Added support for Miners' Village.

The village contains both prefabs that snap to ground and prefabs that connect strictly via connectors.
Fixes #1027.