Fixed incorrect instance shuffling algorithm.

There was a minor implementation bug in `base/instances.go` in regards to the `Shuffle()` method on `Instances` that causes it to create a non-uniform distribution of shuffle permutations. I've changed it to implement the correct Fisher-Yates algorithm.
`go test` passes on my machine.

As far as the diff noise goes, @lazywei is right, I do use `goimport`. As a side note, `gofmt` does not seem to collapse the empty blankline space between the local/external package imports if its already there.