feature-DBPerformance3

This is a pull request that addresses @olegabr 's concerns with DbPerfomance2:
1. Uses a trait instead of a base class to avoid polymorphism issues. The trait is just a mixin, and becomes part of the classes its included in.
2. Reinstates the old caching mechanism as a fallback on the new local cache.

Essentially the effect of this is only to improve InstantiateDBRow by removing GetColumn. There shouldn't be any other side effects.

Can someone look at this and merge it and the other pull requests soon. As the code base diverges, it gets harder to merge, and I would like to move ahead with renaming MetaControl to ViewAdapter. Merging it on the basis that it passes the travis build should be enough for an alpha. If problems arise later, we can fix them then.