Import knob-0.1.1 as wip/hs-knob.

Create memory-backed Handles, referencing virtual files. This is mostly
useful for testing Handle-based APIs without having to interact with the
filesystem.
+ hs-knob
Update to 3.16.1

ChangeLog:
v3.16.1
--------

- Allow import of a library in the same directory as a program. For example to import `lib.sld`:

        (import (lib))

Bug Fixes:

- Husk no longer throws an error during expansion of a library macro that
  references another macro which is not exported from the same library.
- Fixed a bug where a `syntax-rules` macro's literal identifier would not
  match the input when both identifiers are equal and both have no
  lexical binding.

v3.16
--------

- Improved import of libraries:

  - Husk now detects cyclic dependencies and throws an error instead of going
    into an infinite loop.
  - Each library is only evaluated once during the import process.

- `begin` now has the ability to evaluate contained expressions and definitions
  as if the enclosing `begin` were not present, per R7RS. For example:

        huski> x
        Getting an unbound variable: x
        huski> (begin (define x 28) x)
        28
        huski> x
        28

- Added the following R7RS I/O functions:

    - `get-output-bytevector`
    - `get-output-string`
    - `open-input-bytevector`
    - `open-input-string`
    - `open-output-bytevector`
    - `open-output-string`
    - `read-string`
    - `write-string`

- Added an `-i` command line option to `huski`. This option will start the
  interactive REPL after a file specified on the command line is executed,
  and has no effect if no file is specified.

Haskell API:

- The `Port` data type has been extended to include an optional in-memory buffer:

        Port Handle (Maybe Knob)

  These changes are isolated in husk, but if your code uses any `Port`
  constructors, you would need to change them, EG: `Port _ Nothing`.
Update to 1.8.58

CHANGES:
1.8.58
    Move the API to Language.Haskell.HLint2
    #638, ensure $! doesn't break strictness with strict fields
    #24, don't remove DeriveFunctor even when only on a newtype
    #22, turn off UnboxedTuples by default
    #21, strip /* C style */ comments
    #635 and #18, require cpphs-1.18.1
    Switch to CmdArgs for command line parsing
    Remove -x as a synonym for --cross
( #638 => http://code.google.com/p/ndmitchell/issues/detail?id=638 )
( #635 => http://code.google.com/p/ndmitchell/issues/detail?id=635 )
( #24 => https://github.com/ndmitchell/hlint/issues/24 )
( #22 => https://github.com/ndmitchell/hlint/issues/22 )
( #21 => https://github.com/ndmitchell/hlint/issues/21 )
( #18 => https://github.com/ndmitchell/hlint/issues/18 )