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.
make this protected since its an abstract class