adding cluster user for query execution

Fixes:
	1. User related configs will be resolved when session is opened. Cluster user, queue etc. belong to this category
	2. from cli, current logged in user will be passed as cluster user
	3. Domain can be specified on grill level and will be passed to authentication providers as needed
	4. Config will be resolved by config loaders. This can be chosen from the ones provided, or can be custom. Providing three such implementations. Each has its own config.
	5. Test cases for each loader. And test cases for verifying cluster user and loggedin user are set in session.
UserConfigLoaderException is caused because some user loader config is missing or wrongly provided. from http://stackoverflow.com/questions/4233793/proper-use-of-runtimeexception, it seems to me that this should not be a checked exception.

```
Runtime exceptions represent problems that are the result of a programming problem, and as such, the API client code cannot reasonably be expected to recover from them or to handle them in any way. Such problems include arithmetic exceptions, such as dividing by zero; pointer exceptions, such as trying to access an object through a null reference; and indexing exceptions, such as attempting to access an array element through an index that is too large or too small.
```