Test runner and support

This adds a test runner to blaze that avoids the problems of nose. It discovers tests in test packages and runs them as the main module. This allows full flexibility in the way you can write tests:

- You can use test functions and use the test support to build a test suite out of it
- You can use traditional unittests or doctests
- You can simply put asserts or code at the module level if desired

Examples of tests are in test_runner and test_doctests. There is also support for parametrized tests, see test_parametrize.

All tests run in isolation. If desired the test runner can be adapted to build test suites automatically and avoid the pattern below:

```python
if __name__ == '__main__':
    from blaze.testing import main
    main()
```