Change how HLint discovers its hint files

This patch changes how HLint discovers its hint files: both the
default hint file (when no `--hint` argument is given) and when such
arguments are specified.

The problem with the current approach, which looks first in the
current directory and, if not found, in the datadir, has the problem
that the behaviour of HLint differs based on the contents of the
current directory, even if no hint files from the current directory
are specified.

The behaviour is changed as follows:

- if a hint file name is passed which contains any paths separators,
  then interpret it "as given"; the rationale is that a name like
  "./my-hints" or "/linter-service/config/hints" is most likely the
  real path to a file.
- otherwise, look for the given name first in the data dir (so that
  behaviour doesn't depend, at least for built-in hint names, on the
  current directory), and then in the current directory (so that the
  behaviour with `--hint my-hints` doesn't change from previous
  versions).

This way, backwards compatibility is mostly preserved, while fixing
the original problem:

- with no hint arguments, the current directory won't be used as
  a source for hints
- it's still possible to use hints from both current dir and the
  default hints without changes in invocation: `hlint --hint HLint
  --hint my-hints` will do the right thing

The only use cases which are broken by this change are those who used
hint file names in the current directory named identically to built-in
hint files (e.g. HLint, Default, Dollar, etc.). The fix is to prepend
such names with `./` (or better, use different names).