[WIP] Add support for nested hooks.

I've marked this as WIP because for some reason `before_each` seems to be nesting fine, but `after_each` aren't nesting. The assertion in `tests/nested_hooks.rs` line 11 should fail but isn't being executed at all. I'm probably making some obvious mistake here.. any ideas?
Ok, never mind everything else I said in the other thread, this isn't working because `assert_eq`, since the invocation doesn't end with a `;` (!!!) generates a terminating expression rather than a statement.

The final expression in a block is stored is stored in the `expr` field of `ast::Block`, separate from the `stmts`. Since we only add `stmts`, the `expr` gets lost!

I think the correct thing to do here is to disallow the `expr` field of `ast::Block` from being anything other than `None`, which can be done in the parser, for all the before/after blocks. I recommend adding another function in parse called `verify_block` which just takes the parser and block and calls `.fatal` on the parser with an appropriate error message if the `expr` field is not `None`.

There's no other sensible way to treat `expr`.