Add Error struct type and tests, enabling easier error return checking

Closes #9.

In the future, additional error checking helpers could be added using this struct, such as something like:

```go
func IsZpoolExists(err error) bool
```

Which could easily indicate an error returned on zpool creation failure, due to a zpool already existing with the same name.