Improving the OS specific steps

Mac polish step
- scripts & files
- compiling utilities for HP/bin
- new "post install activation script"

improved facilities for OS specific build actions
- additional osRules
- osDocAction for final doc tree tweaking
bump base version for GHC 7.8.3
updating the todo list
fix generic osRules to use correct operator and require its inputs
patch settings to build correctly with clang
refactor cpp command settings mangling
Merge pull request #118 from etrepum/new-build-bob

fix generic osRules and patch cpp flags in the settings file for clang
properly quote productsign instructions
add some implementation notes to GhcDist
put platform on OS X at /Library/Haskell/ghc-$ghcver-$arch

This is because cabal uses the "ghc-" prefix as part of the $compiler template variable

fix up activate-hs
fix uninstall-hs to support versions of the form 7.8.2.20140628
improve cabal.wrap

update to new default cabal config file as basis of the config cabal.wrap writes
improve logic by which it decides to update the config and config.platform files
include a message if config.platform was updated, but config was not because it was user modified
simplify the ghc-clang-wrapper

remove self installation and settings file fix up logic -- this is now handled by activate-hs
build notes update
Merge pull request #119 from etrepum/new-build-sign

New build sign
Factor out template expansion code

create common code for template contexts with BuildConfig and Release info
create common routines for expanding a single file, and a whole tree
for the tree expansion case, support a top level directory of sub-templates that isn't copied over
Preserve permissions for template expanded files.
allow template expansion of all mac os x extra files

this enables the postinstall script and the installer distribution to be templatized, and have the HP version number in them