Lookup

This branch contains a new feature to lookup a file (data or config) and some refactoring in order to facilitate that feature.  As an example:

> `$xdg->lookup_data_file('subdir', 'filename');`
> 
> Lookups the data file by searching for ./subdir/filename relative to all base
directories indicated by $XDG_DATA_HOME and $XDG_DATA_DIRS. If an environment
variable is either not set or empty, its default value as defined by the
specification is used instead.

This is basically word-for-word from the [XDG Base Directory Specification][xdg].  Some of the changes are a bit opinionated on my part so please feel free to object but I do think this would be a useful feature.

[xdg]: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html