Dbcache brush up 3

These patches
- Rename the class: CacheServiceDBClient to ThreadLocalDBCache
This is inspired by TLS (ThreadLocalStorage) to make it easy to understand the role.
- Return a referece of DBTables subclasses instead of pointers.
The returned instance always be NOT NULL. So this behavior is suitable.
- Access DBTables sub classes via this class.
This reduces the construction of DBTables instances and save the number of connections.