Add check to install; warn user if other HPs found

The install will now check, as one of the very first
things, whether other Haskell Platforms are installed.
If any version (even the current version) is found,
a warning dialog is display, with a recommendation that
the user quit the current install, uninstall the others,
then restart the installer.
Make html doc links relative (for Windows)

These changes have only been implemented and tested on the
Windows build, so relative html links are only generated in
that build.  No-op implementations of OS-hooks are provided
for the other builds, such that at least the behavior for
other builds should remain the same as before.

For the Windows installation of the HP, these changes get the
cross-package html urls to work properly, as well as getting
the master index urls set properly.  These changes augment
the generic changes, as the Windows installation requires
relative paths for all the URLs in the html
documentation.

It should be possible to use these new OS-hooks to munge
the URLs for non-Windows installs as well (with some work to
determine what the hooks need to do on each platform, given
installation locations, etc.).

* hptool/src/HaddockMaster.hs
  * Add the base directory to haddockAllCoreReadArgs and
    haddockAllPlatformReadArgs, as the munging of paths to
    make them relative (to the base dir) must happen before
    the list is collapsed by readArgs
  * Add calls to the url munging OS-hooks
  * Add the osGhcPkgHtmlFieldExtras OS-hook, which is used on
    Windows to specify to ghc-pkg to not expand ${pkgroot} or
    $topdir.
  * Rename the readArgs function to haddockReadArg, and
    export it
* hptool/src/OS/Internal.hs
  * Add osPackageConfigureExtraArgs to add the needed args for
    any OS
  * Add two OS-hooks to optionally munge the html
    path which comes back from the package conf info
  * Add an OS-hook, osGhcPkgHtmlFieldExtras, to
    optionally add switches to the ghc-pkg invocation when
    querying the haddock-html field
  * Remove the osToCabalPrefix hook, as this handled by using
    the osPackageConfigureExtraArgs record
  * Add an OS-hook, osPkgHtmlDir, which will expand the path
    to the provided package's html doc directory when
    installed (i.e., under the targetDir); this is used to
    provide the baseDir for the url munging that happens for
    a given package's html docs
  * Track the OS changes, providing values for the new OS
    hooks for genericOS so that the previous behavior is
    retained
* hptool/src/OS/Mac.hs
  * Track the OS changes, providing values for the new OS
    hooks so that the previous behavior is retained
* hptool/src/OS/Win.hs
  * Remove the steps to move the doc and bin files for each
    package, as they are no longer needed due to using
    osPackageConfigureExtraArgs
  * Supply osGhcPkgHtmlFieldExtras to request ghc-pkg to not
    expand the pkgroot (instead, the expansion will be done
    in the munging functions in this module, which will yield
    relative, rather than absolute, paths)
  * Implement the path munging functions which appropriately
    substitute the $topdir and ${pkgroot} relative to a
    provided baseDir
  * Implement the osPkgHtmlDir function, expanding the
    installed html location given the particular package
* hptool/src/OS/Win/WinRules.hs
  * Track OS changes
* hptool/src/OS/Win/WinUtils.hs
  * Move toCabalPrefix from Win.hs to here
* hptool/src/Target.hs
  * Retain the lib-only dependencies (before adding alex or
    happy) in buildAction, for use with the cabal haddock
    changes; (there is no conf file for alex or happy, so we
    would bomb out when trying to get the conf file info for
    haddock)
  * Use the new OS hook, osPkgHtmlDir, to provide the baseDir
    to haddockAllCoreReadArgs and haddockAllPlatformReadArgs
  * In the "cabal configure" step, use
    osPackageConfigureExtraArgs
* hptool/src/Types.hs
  * Add HaddockPkgLoc for the pair of strings representing
    the info retrieved from the package conf files, used for
    making the relative url links; (putting this into Types
    avoids any circular imports between the OS layer and
    HaddockMaster)