API: SQL class definitions renaming

- renaming of PandasSQLAlchemy to SQLDatabase and PandasSQLTable to SQLTable
- renaming of SQLDatabase.read_sql to read_query (to be consistent with read_query/read_table)
- legacy -> fallback
type diversity breaks alignment
DOC: Cleanup of plots in visualization.py

DOC: Use square figsize for pie plots
DOC: Don't share axis labels and reorder to fit in page.
Merge pull request #8457 from behzadnouri/align-rhs

BUG: type diversity breaks alignment
Merge pull request #8391 from TomAugspurger/square-pie

DOC: Use square figsize for pie plots
DOC: doc updates for categoricals
TST/PERF: have moments slow tests run faster (GH8450)
DOC: categorical.rst fixups
BUG: fix Index.reindex to preserve name when target is list/ndarray

CLN: drop copy_if_needed kwarg of Index.reindex, it's True everywhere

TST: enable back empty loc/ix tests that failed before

DOC: Bump Index.reindex docstring
Merge pull request #8460 from immerrr/preserve-index-names-when-reindexing

BUG: fix Index.reindex to preserve name when target is list/ndarray
WIP: searchsorted implementation
TST: complex ops test correction
Merge pull request #7447 from cpcloud/pd-searchsorted

WIP: searchsorted implementation
Closes #6852. Dataframe memory usage methods implemented.
Merge pull request #7619 from asobrien/df-mem-info

ENH: dataframe memory usage
BUG: fix Index.reindex to preserve type when target is empty list/ndarray

TST: check index/columns types when doing empty loc/ix tests

CLN: don't _ensure_index in NDFrame._reindex_axes, it is done in
     Index.reindex
SQL/ERR: raise error when insert failed with sqlite fallback (GH8341)
Merge pull request #8462 from immerrr/preserve-index-type-when-reindexing-to-empty

BUG: fix Index.reindex to preserve type when target is empty list/ndarray
COMPAT: disallow Timedelta invalid ops
DOC: v0.15.0 / faq.rst updates