Added floor item. Also, bugfixes to path finding

- Added floor item. Constructed and extended automatically with every construction of building item and resizing of elevator shafts. Rendered 1st before any other building sprites.
- Changed the construction code to use this new floor item to check floor width limits instead of iterating through all items on the floor.
- Added a workaround to render sky colour for the windows in the sky lobby, since the floor item is rendered behind the sky lobby. Rendering the obscured parts of the sky lobby floor transparent to show the actual sky background would be a better option, but this would only be possible in SFML 2.0 (using RenderTextures).
- Removed defaultCeiling() since floor item is now implemented. [Item.h, Item.cpp, FastFood.cpp]
- Use prototype icon instead of prototype id to check for item type (reduced inefficient string comparisons) [Game.cpp]
- Since only ground lobby can be built on floor 0, ignore finding routes on floor 0. Also do not display no-route sprite on floor items. [Item.cpp]

Bugfixes
--------
- Return empty route if start and end nodes are the same. [PathFinder.cpp]
- Changed the cost of travelling on an standard-elevator to include maximum walking distance cost, to prevent usage of elevator when stairs/escalators are within walking distance. [MapSearchNode.h]
- Reduced the cost of travelling on an express-elevator to encourage usage of express-elevators (with stairs/escalators) before standard-elevators.
- Properly estimate goal distance when starting node is a floor node but ending node is a transport node. [MapSearchNode.cpp]
Merge remote-tracking branch 'fabianschuiki/restart' into restart

- Merged with upstream, deconflicted some changes which were introduced with previous commit for the new floor item.
- Fixed some compile errors from upstream that occured in MSVC.
- Modified decoration to draw stairs based on available floor items. [Decoration.cpp]
- Modified decoration to update when floor items are constructed or extended. [Game.cpp]
- Show message in TimeWindow when bulldozing of item is not allowed. [Game.cpp]

Bugfixes
--------
- Properly construct floors for building items that span more than one floor. [Game.cpp]
- Properly extend floors on both sides when constructing new buildings or resizing elevators. [Game.cpp]
- Properly check floor width when constructing building items taller than 1 floor. [Game.cpp]
- Transfer funds only if an item is really constructed (construction that costs $0 does not trigger transfer of funds) [Game.cpp]
Merge remote-tracking branch 'upstream/restart' into restart

- Merge with latest changes from upstream. I had already started deconflicting a merge with the previous commit on the upstream branch and decided to hold off merging this minor change till now.
Modified floor item rendering. Fixes issue #2.

- Modified the way floor items are rendered: Render the full floor sprite for sections not obscured by any building item, otherwise render only the ceiling. This allows for full window transparency in sky lobbies. [Floor.h, Floor.cpp, Game.cpp]
- Previous workarounds in Sky and Lobby removed since modified floor rendering no longer requires it. [Sky.h, Sky.cpp, Lobby.h, Lobby.cpp]

Bugfixes
--------
- Prevent construction of anything below floor B9, except the Metro Station. [Game.cpp]
- Prevent construction of Metro Station above ground. [Game.cpp]
Modified path-finding to cater to entrances/exits. Fixes #3.

- Added entrance and exit offsets to specify where customers will enter and exit a building. Default entrance and exit offsets are 0 (i.e. on the lowest floor of the building item). [Prototype.h, Item.h]
- Routes are computed based on the floor of the actual map-nodes provided, instead of the floor of the item. [PathFinder.cpp]
- Cinema patrons enter from the top floor and exit from the bottom floor. [Cinema.h, Game.cpp]
- Metro passengers enter/exit from top floor to go to other floors. But they also enter/exit from middle floor to visit shops on that floor. [Metro.h, Game.cpp]
- Only one instance of Metro Station allowed in-game. [Game.h, Game.cpp, Metro.cpp]
- Cannot bulldoze Metro Station. [Game.cpp]

Bugfixes
--------
- Person now starts the journey on the correct floor according to the 1st node in the journey. [Person.cpp]
Modified path-finding behaviour

- Allow travel by stairs/escalators before boarding elevator. [MapSearchNode.cpp]
- No more than 1 elevator allowed throughout the journey if stairs/escalators are used as well. [MapSearchNode.cpp]
- No transfer between elevators allowed except on sky lobby floors (presence of sky lobby not checked yet). [MapSearchNode.cpp]
- Separate path-finding into normal and service route search. [MapSearchNode.cpp, Game.cpp, Game.h, GameMap.cpp, MapNode.cpp, MapNode.h, MapSearchNode.h, PathFinder.cpp, PathFinder.h]
- Removed redundant checks in transport transfer limit-checks. [MapSearchNode.cpp]

Bugfixes
--------
- Prevent dereferencing of end iterator during floor rendering (worked fine in Release mode, crashed in Debug Mode with MSVC). [Floor.cpp]
Updated CMake files to facilitate compilation on Windows.

- Added code for linking to debug libraries for libRocket for Debug projects (otherwise there will be compile errors). Previously I had resorted to manually changing the libraries which were linked in the Debug projects. [FindRocket.cmake]
- Added code for finding mspack library paths (pkg-config doesn't work very well on Windows). [CMakeLists.txt]
- Removed FindCEGUI.cmake since it is no longer required.
Modifications to correct CMake project creation on MSVC.

- Modified CMake files to define DEBUG constants and libraries properly for MSVC. No longer need to manually tweak MSVC projects each time CMake is run. [CMakeLists.txt]
- Properly coded search for tmp directory, for MSPACK to decompress the SimTower executable. [SimTowerLoader.cpp]
Added Restaurant. Fixed bug in path-finder.

- Added Restaurant item. [Restaurant.h, Restaurant.cpp, Factory.cpp]

Bugfixes
--------
- Fixed an error in getting transport item used in path-finding which was introduced in the previous commit on path-finding. [MapSearchNode.cpp]
Added Metro tracks.

- Added Metro track sprite. [Decoration.h, Decoration.cpp]
- Added some explicit type casts (in recently created classes) to remove compile warnings about possible loss of data due to conversion.
Merge branch 'master' into office-merge

Conflicts:
	TODO.md
	data/default.tower