[OC-4235] 'delay-loading' changes to reduce load-time

Here are findings with load-time differences before & after code changes.

# knife-core(no-plugins)
		real 	0m0.744s
		user	0m0.688s
		sys  	0m0.052s

# knife(with knife-azure, knife-google, knife-hp, knife-ec2, knife-windows,knife-terremark, knife-rackspace)
	# before changes, 
		real 	0m5.835s
		user	0m3.736s
		sys  	0m0.376s

	# After changes, 
		real 	0m3.805s
		user	0m3.452s
		sys  	0m0.272s


Environment:
1. Chef Version: 10.14.2
2. Ruby Version: 1.9.3p194
3. Gem Version: 1.8.24