WL#3282: Handler cleanups 2007

List of handler cleanups that needs to be done sooner or later
- Clean up start/stop of transaction
(The current way of doing it through external_lock() is a hack that
has been in place way too long)
- Clean up ha_index_init/ha_index_end() usage.
(The fact that we have a function ha_index_or_rnd_end() is
suspicious)
- Functions for dirty key read of row (needed for foreign keys)
- Functions for online backup handling
- Remove InnoDB specific foreign key calls.
get_foreign_key_create_info() etc
- Commands for handle table spaces (create, drop, add tables, move tables etc)
- Remove ::dump() and net_read_dump() commands
- Remove BerkelyDB (Depricate in 5.1 and remove in 5.2 ?)
- Split the setting of "records" so that handler knows when and _exact_
values should be returned (for e.g. select count(*)) and when it is
enough to return an approximate value for e.g. query planning
- create "shared table object". it means uint shared_table_object_size field
in the handlerton, and that amount of bytes at the end of the TABLE_SHARE
for storage engine to use. with a flag to know whether it's initialized
or not (table is open or only table_share is)
- move THR_LOCK to the TABLE_SHARE, and THR_LOCK_DATE to TABLE
- create "transaction object". similar to "savepoint object" - size is
specified in the handlerton, in st_transaction the space is allocated
for all storage engines
- remove "statement transaction", use savepoints instead.