Fix Close() to return nil in case of no errors

A typed nil still compares non-nil when stuffed into an interface. Thanks to Tom
(ORBAT) for pointing this out.
Actually check the return from Close in our tests