Fixed issues with DB Adapter refresh

Due to using the ui-router, state changes were triggering on every
collapse/expand. These cause resolves to re-resolve, and since these were using
caching, new values or deleted values would result in the appearance that
nothing had happened, even if the API calls were correct.

The solution lay in several facets:

- Caching was introduced at the service level. The DbAdapterResource now keeps
  track of adapters fetched via getList(), and will return them if found (and
  the force flag is false). This addresses the lag that was happening due to the
  $http service making a HEAD call to check cache headers on each state change.
- The controller was updated to make a $state.go() call instead of re-setting
  the $scope.dbAdapters value whenever dbAdapters needed to be refreshed. This
  was necessary as once the $scope was bound to a promise, angular was not
  allowing it to be reset to another object. This is done with a $timeout to
  give a reasonable delay visually for the user.

These changes will also need to be applied to all other services managed via
"resolve" rules.

Finally, the dropdowns for listing available DB Adapters were broken. Both of
them were using the notation required for objects in the ng-repeat directives,
when in fact the value is an array. As a result, the "key" value that enumerable
JavaScript objects populate internally was being exposed as an additional value,
meaning the last value in the array was being listed twice.
Updated distribution
Merge branch 'hotfix/db-adapter-dropdown'

Fixes "stickiness" of DB Adapter listings in both the DB Adapter screen and in
dropdowns.