open() supports optional error handler

Fixes issue 33

**Note:** I only added test coverage for this specific bug.  Coverage should be added for other optional error handlers.