Bugfixes and docfixes for local project patch

This fixes #79 and improves documentation and error messages. It also includes a small fix to support generation from local archives, so you can now do:

``` nix
# cabal2nix packages/lens-4.3.tar.gz
# This file was auto-generated by cabal2nix. Please do NOT edit manually!

{ cabal, aeson, attoparsec, bifunctors, comonad, contravariant
, deepseq, distributive, doctest, exceptions, filepath, free
, genericDeriving, hashable, hlint, HUnit, mtl, nats, parallel
, primitive, profunctors, QuickCheck, reflection, scientific
, semigroupoids, semigroups, simpleReflect, split, tagged
, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
, testFrameworkTh, text, transformers, transformersCompat
, unorderedContainers, vector, void, zlib
}:

cabal.mkDerivation (self: {
  pname = "lens";
  version = "4.3";
  src = /tmp/packages/lens-4.3.tar.gz;
  buildDepends = [
    aeson attoparsec bifunctors comonad contravariant distributive
    exceptions filepath free hashable mtl parallel primitive
    profunctors reflection scientific semigroupoids semigroups split
    tagged text transformers transformersCompat unorderedContainers
    vector void zlib
  ];
  testDepends = [
    deepseq doctest filepath genericDeriving hlint HUnit mtl nats
    parallel QuickCheck semigroups simpleReflect split testFramework
    testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text
    transformers unorderedContainers vector
  ];
  meta = {
    homepage = "http://github.com/ekmett/lens/";
    description = "Lenses, Folds and Traversals";
    license = self.stdenv.lib.licenses.bsd3;
    platforms = self.ghc.meta.platforms;
  };
})

```

Also, `cabal2nix .` doesn't generate an invalid derivation anymore. 
This module doesn't exist in earlier versions of Cabal. Do we really need to import that, breaking backwards compatibility with older compilers, just for the `catchIO` function?