* Check for existing layer name
Added check for an existing layer by name before adding new layer. If layer name already exists, a descriptive exception is thrown instead of the generic ArgumentException.
* Update TiledMap.cs
* Change from storing layers by index to Dictionary key
Models are now stored with the `TiledMapLayer` they are part of.
* Allow render calls via TiledMapLayer
* Add TiledMapGroupLayer and model build recursion for groups
* Add rendering support for TiledMapGroupLayer
* Update TiledMapReader to read TiledMapGroupLayers
* Update Features Demo to Include a Map with a Layer Group
* Update TiledMapWriter and TiledMapProcessor to Support Groups
* Update TiledMap to Report Layers Correctly
`FirstGlobalIdentifier` is only used with the map to reference the tileset which contains the tile referenced. It isn't really part of the definition of a `TiledMapTileset` even though the `.TMX` format includes it with the `<tileset>` tag