Use connection caching for DB based data sources.

Profiling data indicates that this is speeding up SQLite
connections, and so probably it is better this way for
MySQL as well. Redis was already doing this type of caching,
but it is now more resilient against disconnects.
Refactored DataSources some. No functional changes.
Merge pull request #205 from EntityReborn/master

Speed up initial load times.
Added better error detection for spurious symbols, while not caring about whitespace. Fixes 2895.
Merge origin/master
Added "in" and "as" keyword syntax sugar for foreach.
Added player_toggle_sprint, flight and sneak events. Thanks Hekta! Currently only flight has visible cancellation effects, due to how the client and server manage things.
Merge pull request #206 from EntityReborn/ManualMerge

Added player_toggle_sprint, flight and sneak events. Thanks Hekta!
Deprecated a few event-based internal methods.
Added entity_spec, set_entity_spec, damage_entity, get_projectile_bounce, set_projectile_bounce, get_projectile_shooter and set_projectile_shooter.
Fixed boilerplate warning.
Added missing information in the bundled docs.
Fixed MySQL Data Sources, updated docs.

Updating an existing value with MySQL was not working properly, 
only the first value was stored, updates were not being done.

MySQL is also being changed to use indexed tables, which
should be much more efficient than non-indexed tables,
and allows for use of the REPLACE INTO command, instead
of having to manually do a DELETE/INSERT or SELECT/UPDATE|INSERT
combination. This doubles the efficiency noted before. However,
anyone who has started to use the MySQL tables will have to
DROP TABLE `tableName`; in order for new queries to succeed.
No upgrade routine is being provided, since this is such a new
feature, and it was previously broken anyways.

Documentation has been updated in several places as well, and
a few changes and improvements to the built in syntax highlighter
have been made. Examples in the API page are now syntax highlighted.
Several more articles are now automatically managed, and a new article
describing the Persistence Network in more technical terms has been added.
Merge origin/master
Merge pull request #207 from EntityReborn/ManualMerge

Added a slew of entity-based functions.
Added complex entities to the convertor. Fixes #2873