Fix #4 by introducing optional test randomization

So... that wasn't too bad either :) However, the test output (both story and json) are basically garbled junk :(.

What's the right thing to do with reporting? I could:
  1. buffer everything till the end and emit it in a stable sort order
  1. stream the output (but emit stories multiple times)
  1. ???

1 is pretty explanatory

2 would be something like:
```go
Convey("A", t, func() {
  Convey("B", func() {
    Convey("C", nil)
    Convey("D", nil)
  })  
  Convey("F", func() {
    Convey("G", nil)
  })
})
```

Could emit:
```
A
  B
    C
  F
    G
  B
    D
```
(assuming that's how they randomized).

Or is there another idea?