[ExternalStore] Refactored external store classes to use a base class.

* Added ExternalStoreMedium base class
* Moved up two functions in ExternalStoreDB
* Various documentation tweaks

Change-Id: I6790aab7799609422e7af4fb31d2ad60610298ec
Merge "[ExternalStore] Refactored external store classes to use a base class."