Rename `Suite.children` to `Suite.suites`.

This seems clearer and less confusing.
Add basic set-up and tear-down helpers' support.

This adds the helpers:
- `before` (for running blocks before running the Suite)
- `beforeEach` (for running blocks before each of the Suite's children -
  both its child suites and child specs)
- `after` (for running blocks after running the Suite)
- `afterEach` (for running blocks after running each of the Suite's
  children)

The blocks registered with the `before` family are ran in the order they
are registered, while those registered with the `after` family are ran
in reverse. This seemed like a more intuitive choice, since it mimics
the behaviour of D's destructor calling order and looks like we're
wrapping and unwrapping test suites into/from contexts.

This closes #4 and bumps version to v0.0.3 (if I was using semantic
versioning properly I'd bump it to 0.1.0, but it's to early on to worry
about things like that).