New parameter: hive.metastore-refresh-in-background

**Summary**
With this pull request a new parameter (```hive.metastore-refresh-in-background```) is introduced so that users can change the behavior of the metastore cache to either load its contents in the background (asynchronously) or in the foreground.

**Why do we need this feature?**
The reason we needed this feature is our users were constantly getting confused when the cache was refreshing its contents in the background; in their first query submission the cache triggers a load (of course after a cache refresh timeout) and before that completes the query executes on the **old** schema, and when the user submits the query second time the cache refresh usually gets completed and the **new** schema gets processed and the user gets confused because he/she gets **different** results with the same query. After sometime this behavior evolved into a double submission patterns for our users to process the latest schema. This parameter aims to avoid this behavior; when ```hive.metastore-refresh-in-background=false``` if a user submits a query and if the cache should be loaded (after the refresh timeout) then the cache gets loaded in the foreground.