Unique

use a hash function to determine uniqueness, similar to underscore.js
Could you build this on top of `Filter`?

```go
func Unique(hash UniqueHash) optimus.TransformFunc {
	set := set.New()

	return Filter(func (row optimus.Row) (bool, error) {
		hashedRow, err := hash(row)
		if err != nil {
			return err
		}
		return !set.Has(hashedRow)
	})
}
```