move indexing out of transaction

Currently the indexers are run from within a transaction. During the indexing for category data the following statement gets created

DROP TABLE IF EXISTS `catalog_category_flat_store_1`

This will then trigger an exception (tested on Magento 1.6.2.0)

Exception with message 'User Error: DDL statements are not allowed in transactions'
/lib/Varien/Db/Adapter/Pdo/Mysql.php(401)

The attached patch moves the indexing out of the transaction and runs them later. Thanks for consideration of this patch.