Describe returns proper schema and the schema is cached

Per "Model/Datasource/DataSource.php", describe should return a metadata array, not a list of fields.  When proper metadata isn't returned by describe, other functionality (such as $model->getColumnTypes()), is broken.  Many behaviors depend on these core functions returning properly.

This patch also makes use of the built in schema caching provided by Cake2.