QuickSpec: report failures via exceptions

Prior to this commit, Nimble would report failures via XCTFail. While
this allows for a complete separation of Quick and Nimble, it is
inflexible--if expectations are placed within a shared example group,
for example, Quick has no way of reporting the failures accurately.

Quick now reports failures via exceptions. Nimble raises exceptions to
indicate failures, with details on the file and line number of the
failed expectation embedded within the raised exception's user info.

This paves the way for shared examples #44 and
custom output formatters #9.

Other changes of note:

- Remove API to override failure reporting in QuickSpec. Since QuickSpec
  uses SenTestingKit file and line number keys anyway, the issue raised
  in #41 can still be considered resolved
- Rename Callsite_ to Callsite--I don't know how I missed this in the
  pull request review
NSString+QCKSelectorName: namespace category method
World: Use singleton pattern
Quick.DSL: add shared examples

Allow users to define shared examples using `sharedExamples`, and to
inject those examples anywhere using `itBehavesLike`.

Shared examples are registered with the World. Attempts to register
shared examples with the same name throw an exception. An attempt to
execute shared examples that have not been registered also raises an
exception.

`itBehaveLike` acts like a `describe` block, except that if
any of the examples in an `itBehaveLike` fails, the line where
`itBehaveLike` is executed is reported as an XCTest failure, not the
line with the failing expectation.
Quick.DSL: shared examples may use extra context

`itBehavesLike` now takes an extra, optional argument: a closure that,
when evaluated, returns a hash of values that may be used in shared
examples.

`sharedExamples` may be passed either a closure that takes no arguments,
or one that uses these additional hash values.

Completes issue #44, which in turn resolves issue #37.
README: add shared examples