Add an IsString instance for Builder
Add some ignore files for hg and git
Make tests build standalone

If we try to build the top-level tests using cabal, it fails because
the depsolver ties itself in knots.

The "solution" (similar to that used by many other packages) is to
have a separate fake package that builds the tests.
Fix the rewrite rule that optimizes packing of string literals

This patch addresses two issues:

1) The particular rule was guarded under the wrong CPP conditional

   #if !defined(__GLASGOW_HASKELL__)
   ...
   #endif

   so GHC never even knew about it!

2) The rule didn't apply to ByteStrings that were implicitly packed
   via OverloadedStrings.

So now the RULE is properly guarded and applied earlier (or later,
depending how you look at it). Specifically, the rule changed from

  forall s.
  pack      (unpackCString# s) = inlinePerfomIO (unsafePackAddress s)
  -- defined in Data.ByteString.Char8

to

  forall s.
  packChars (unpackCString# s) = inlinePerfomIO (unsafePackAddress s)
  -- defined in Data.ByteString.Internal

To achieve this, the definition of 'unsafePackAddress' had to be
moved from the .Unsafe module to the .Internal module.
Move D.B.Unsafe.unsafePackAddr to D.B.Internal

But continue to export it from D.B.Unsafe
conditionally export D.B.Internal.unsafePackAddress
Fix build on GHC 7.0

unpackCString# was moved from GHC.Base to GHC.CString in 7.2.