function TileMap(width, height) {
	this._name  = '';
	this.width  = 0;
	this.height = 0;
	this.items  = [];
	this.texture = null;
	this.tilesheet = null;
	this._tilesheetPath = '';

	if (width && height) this._init(width, height);
}
@class TileMap
 @author Cedric Stoquer
 @classdesc
A tilemap is a 2 dimensional array of tiles (`Tile`).
This can be used to reder a level made of tiles, or just to store game data.

A tilemap can be stored as an asset and is usually much smaller than a image because
the only data saved are tile ids (a number between 0 and 255) plus few flags
for how to render the tile (flipping horizontally, vertically, and 90 degree rotation).

For its rendering, a tilemap use one tilesheet, which is an Image containing 256
tiles organized in a 16 x 16 grid (the size of the tilesheet depend of the tile
size you set for your game). The tilesheet can be changed, and the whole map will
be redrawn.

You can create maps from your game code; But usually, you will be using Pixelbox's
tools to create and manage your maps as game assets. A map can then be retrived
by its name with Pixelbox's `getMap` function. The map can then be drawn on screen
(or in another Texture), modified, copied, pasted, resized, etc.

When stored in assets, the map is compressed to Pixelbox format to reduce file size.

@see Tile

@property (string) name   - map name
@property {number} width  - map width (in tiles)
@property {number} height - map height (in tiles)
@property {Tile[][]} items - 2D array of map items
@property {Texture} texture - generated texture