add data-dir to InstalledPackageInfo

the datadir location for the inplace InstallDirs was pointing to the top directory
of the package instead of the directory containing the data. this has been fixed.
since templates have already been expanded at this point, datasubdir raises an
exception an cannot be used in generalInstalledPackageInfo. therefore the
full path is stored in datadir.
add JavaScriptFFI known language extension
add GHCJS compiler flavor
Add support for derived compilers to CompilerId

When a compiler is based on another "parent" compiler and has
very similar functionality, the parent compiler field in
CompilerId can be used to make both the impl(compiler) and
the impl(parent) flags evaluate to true, each for their respective
version.

This can make conditions in packages significantly simpler.
Add the js-sources and various ghcjs-options fields to PackageDescription

This patch adds the js-sources field, for JavaScript source code
that should be included in compiled programs, similar to c-sources
for other targets.

It also adds ghcjs-options, ghcjs-shared-options and ghcjs-prof-options
and makes the underlying code for options easier to extend.
Merge branch 'ghcjs-new'