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]