Throw a more helpful message earlier on if calling get() with undefined/null value
Refactor: clean up tests by using assert.throws
New test coverage to show that calling get(null) and get(undefined) don't fail gracefully.

        However, get('') already fails nicely.
Merge remote-tracking branch 'robludwig/master' into get-with-empty-arg
Add test coverage for has(undefined), has(null), has('')
Add check to has() to see if the arg is null or undefined.

This avoids a blow-up later in getImpl() when split is called on the argument.

Also, update test for get() to match the exception text actually thrown.
Merge pull request #185 from markstos/get-with-empty-arg

Code and tests for get() and has() to explicitly handle missing input.