Add option to keep the construct dir around after test is finished.

There are two ways to use this:

1. Explicitly flag a construct to be kept around.

   ```ruby
    within_construct do |c|
      # ...
      c.keep
    end
   ```

2. Enable the `keep_on_error` flag.

   ```ruby
    within_construct(keep_on_error: true) do |c|
      # ...
    end
   ```

   This will cause the created directory to be kept around if an
   exception is raised inside the `within_construct` block.
Modify exceptions to include location of kept TestConstruct files if keep_on_error is set.
Add :base_dir option to change where constructs are created.
Add the :name option to help give construct dirs meaningful names.
Document changes for improved postmortem debugging.
Add RSpec integration.

This necessitated a pretty massive refactoring. The reason being that
until now I'd been using `#within_construct` inside
`config.around(:each)` hooks to do RSpec integration
per-project. However, RSpec `around` hooks don't grant access to the
current `Example`, which also means they don't have access to the
exception (if any) the current example has raised. As a result, I
decided to reimplement `#within_construct` in terms of two bookend
methods, `#setup_construct` and `#teardown_construct`. These can then
be reused in RSpec `before` and `after` hooks.
README changes
Improve example of base_dir option in README.
Remove `keep_on_error` in #setup_construct.
Change RSpec metadata key to :construct
Add RSpec as development dependency
Fix capitalization
Merge branch 'debugging-improvements' of git://github.com/avdi/test_construct into avdi-debugging-improvements
Require 'pathname'
Fix RSpec integration
Simplify signature of  method
Simplify code
Adds examples
Bump version and add changelog
Whitespace changes