Specify default when calling Config.fetch

Works like Ruby's Hash#fetch method.
Config::NotDefined inherits from KeyError

The thinking here is that when calling Config.fetch you might expect
that it'd raise KeyError (like Hash#fetch) does if the config setting
you want isn't defined. So we do.
Nesta::Config from_(environment|yaml) raise NotDefined

Previously these methods returned nil, which encouraged them to be called one
after the other in a boolean short-circuit style, leading to subtle bugs
in the way config values that evaluated to false were handled.

Raising an exception has also allowed needlessly complex conditional
statements to be simplified.