Added custom configurations for MSVC projects.

The DebugProfile and ReleaseProfile configurations add profiling capabilities to the respective build.
CMake: profiling builds get correct commandlines in MSVC.
Ignore profile build folders created by MSVC build.
Fixed Linux configuration.
Move biome definition to separate files
Fixed cIniFile's SetValue().

How did we not see this earlier? Each call to SetValue would actually ADD a value!
Fixed missing externals

Turns out you actually have to include the .cpp in the project file
Added files to VC2013 project file
Added newlines at ends of files
Include Biome enum in ChunkDef

Can't forward declare an enum
Major refactoring of redstone

This commit is a refactoring of the redstone code, mainly the functions
handling the removal of invalid blocks from power supplier data
structures. Its aim is to improve performance and potentially reduce the
memory footprint of the data structures.

It works to reduce the amount of GetBlock()s triggered every tick.
Before, a GetBlock() was requested for every single item in the data
lists, as well as for every single redstone block in a chunk. Following
these changes, the AddBlock() event is utilised more effectively to only
update the lists when needed (a block is changed), as well as to insert
the block type (and update it when needed) alongside the coordinates
into the main redstone simulator chunkdata list.

In short, a single GetBlock() is now cached, with this cache being
updated when the simulator is awoken due to a block change.

At least, I *hope* that this is what it does :P
Decoupled cChunkGenerator from cWorld and cRoot.

Now the chunk generator can be used by other projects without depending on the two hugest structures in MCS.
Fixed doors, fixes #453
Globals.h needs to be first include
Renamed g_TorchPlaceable...

...to g_FullyOccupiesVoxel, as recommended by @bearbin
Fixed a door bug and reduced code

Doors wouldn't get powered by repeaters, and some blocks, like glass,
were viable middle blocks when they shouldn't have been.
Merge branch 'master' into IniFileFix
Did some stuff with the vectors
Merge pull request #531 from xdot/master

Fixed glowstone drop count
IniFile: Split SetValue() into AddValue() and SetValue().

Each function does what one would assume - AddValue adds a new value, SetValue overwrites existing value (creates a new one if not exists, if instructed to do so).