Moving most of CARuins main config to a Forge-style config.

* Global CARuins config like frequency and features
* CARuins' chest config
* CARuins' seed weights
Moved CARuins spawner rules to new Config.
Breaking up initialize into subroutines.
Moving the biome BlockRules to the new config.

Greatly simplifies matching biomes to rules and biome ids.
Moving CA rules into new config.

* Created a class to represent a single CARule. It can parse and
  serialize strings that represent the CA rule.
Updating comments and fixing an off-by-one error with the block rules.

* Word-wrapping and updating various comments in the config file
* the off-by-one-ness of the block rules vs biomes is easy to get wrong.
Splitting CARule up into CARule and WeightedCARule.

CARule only handles the cellular automata rule specification, while the
WeightedCARule handles the config line for CARuins. This is needed to
handle BuildingCellularAutomatons that are towers for great walls.
Organizing all import statements.
Adding and doing a little cleanup on class comments.
Some additional cleanup in PopulatorCARuins.
Merge branch 'master' into forge-configurize

* master:
  Adding and doing a little cleanup on class comments.
  Organizing all import statements.

Conflicts:
	src/main/java/generatormods/BuildingExplorationHandler.java
	src/main/java/generatormods/PopulatorCARuins.java
Made CARuinsConfig instantiable and use a logger for errors.
Reducing the amount of copying of variables around for CARuins.

* WorldGenCARuins now uses the CARuinsConfig object directly as much as
  it can without refactoring its parent class.
* PopulatorCARuins now only populates and holds onto references of
  config options that its parent class handles.
* Refactoring WorldGenCARuins to use a new SeedType enum for tracking
  the various CA seed types, instead of having to synchronize multiple
  arrays.
Extracting CA seeds out into singular concerns
Abstracting chest creation further.

* ChestType is an enum that represents the support chest types.
* Using ChestContentsConfig where possible in config, isntead of
* Object[] arrays.
Further extraction and encapsulation of Chest config.

* Made the other mods use the new types to handle building the default
  lists, and to deduplicate parsing code.
* Moved the default chest contents into ChestType, since it represents
  the source of truth about chest types
* Tried to reduce dependencies on Object[] arrays for default configs.
Moving CARuins configs into their own package
First pass at extracting GreatWall config out to its own class.

* Made an AbstractConfig to handle common config settings, and
  refactored CARuinsConfig to use it as well.
Updating WorldGenGreatWall to use the config object
Extracting WalledCity config out into its own class.