Added parallel processing capabilities

Added parallel processing capabilities to speed up the data retrieval;
For that I used the multiprocessing.dummy.Pool and the Pool.map method;
New methods were added to use the map function, in particular,
self.downloadDataWithMap; Also a new global variable api_keys is used to
hold the many api keys needed; All the errors that can occur when
requesting data to the web api and when writing data to the sqlite
database are now acknowledged and then ignored, that is, the methods
keep retrying until everything goes right.