Optimizations made to DB.Get<T> and DB.Exists

Here is what I changed:

#### 1. 'DB.Get<T>' 
DB.Get<T> changed to add the obtained value from 'disk' into the 'Cache', making subsequent 'Get<T>' calls for the same key more faster (or without IO).

#### 2. 'DB.Exist' 
DB.Exist was changed to first check  the 'Cache' to avoid make unnecessary IO.

#### 3. 'DB.Insert<T>' 
DB.Insert<T> was also changed to remove unnecessary code.