Database migration script for v2.0

Closes #23
Small cleanup
Added docs for migration with custom storage

[skip ci]
Test that opening an old database fails
Fix code coverage
Improve test for migration
Move _process_data to process_elements (public API)
Fix some problems with cross references in docs
Update line count mentioned in README
Some small refactorings and cleanups
Fix Storage metaclass usage on Python 3
Fix: Python 2.6 has no dict comprehensions
Improve test coverage once again...
Merge branch 'migration-2.0'

Conflicts:
	tinydb/database.py
Use process_elements in SmartCacheTable
More refactoring in SmartCacheTable
Small cleanup in LRUCache
Update README: follow docs/intro.rst

[skip ci]
Improve documentation on storages/middlewares

[ci skip]
Add db.tables(): get names of all tables