Naming convention as of https://github.com/bbatsov/ruby-style-guide#naming
Throw exception if config key not exists
Do not distinguish symbol from string keys

- Side effect is a clone of a hash, preventing manipulation :)
Raise error if config source is invalid
Return whole config hash on #get('::')
Added expectations for Array and Hash values
Added fallback parameter for Config#get()