Add some encapsulation to cata_tiles.

Made most functions and all members protected.
Only the functions called from outside are still public.
Added inline wrapper to access some members.
Move releasing loaded tile data into separate clear function
make tile_atlas a temporary variable

It is only used to extract the tile images from it. There is no need to store the whole image the whole runtime.
If it is used only during loaded it does not need to be a member variable anymore.
Merge reload_tileset and load_tileset into one function

reload_tileset is only called from load_tilset so it seems a second function is no needed.
The code from load_tileset has been moved to reload_tileset and that function has been renamed to load_tileset.
Allow tiles from several tileset images to be used for tilesets.

Moved call to load_tileset into load_tilejson. Forward the image path to that function.
Added code that loads the tile definition into separate function (uses the JsonObject as parameter).
The json format can now contain a "tiles-new" entry instead of a "tiles" entry (backwards compatibility):
It should contain an array of objects, each object contains:
1. an image path
2. an array containing tile definitions based on that image. That array uses the same format as the old "tiles" array.

Made sure that load_tileset can load further tileset images without overriding previously loaded tiles (initialize tilecount to current tile count).

Added a test tileset: RetroDays by Abalieno
Remove unused members, if they are needed they can be re-added.
Remove the indirection of cata_tiles::tile_values.

tile_values does not need to be a pointer. It makes code more complicated and it's ... pointless.
Remove indirection from cata_tiles::tile_ids

Does not need to be a pointer. It's (as with tile_values) pointless to make this a pointer.
needless assignment removed
removed cata_tiles::init and use load_tilejson instead.

init did only one thing: calling load_tilejson, so why have keep function?
Moved some code out of cata_tiles::load_tileset and to somewher ebefore that function is called.

The function called (probably) multiple times now and the moved code needs only to be called once.
Extracted some common code into a separate function.

That function does now the range checking of fg/bg
Add ability to load tiles that a re going to be used as ASCII replacement.

Changed the retro tileset to include ASCII tiles.
Add ascii fallback for furniture/terrain/monsters/fields/traps/items

Fixes a bug for the roation certain multitile definition from ascii
Add ascii fallback for vehicle parts

Load certain LINE_XOXX_* ascii values differently
Make cata_tiles::tile_values a std::vector.

It was already used as vector anyway.
Add the standard headres as their content is used. It worked so far out of pure luck, the other headers included them for us.
Transform category parameter of cata_tiles::draw_from_id_string to an enum.

There are only a handful of different categories. A string is not needed.
Make id parameter of cata_tiles::draw_from_id_string a const reference.

Ther eis simply no need to copy that string all the time.
Make subcategory parameter of cata_tiles::draw_from_id_string a const reference

Use a static empty string to avoid creating new strings each time.
Corrected the colors in the tileset config.

Thanks to Abalieno for pointing me to the correct values.