Add failing test for efile error

This test shows how if the cached efile port closes, our dumb ass can
not recover and Bitcask is unable to open casks. Yeah.
Recover from lost efile port

When the efile port cached in the process dictionary dies for any
reason, the code tries to load it one more time.  If we can not open a
new port, something is probably seriously wrong, so we stop.

This fixes the issue with efile ports going away, then Bitcask basically
getting stuck on the list_dir operation needed when opening a cask.

The bitcask:efile_error_test/0 will now pass with this change.
Merge pull request #189 from basho/bugfix/list-dir-port-refresh

Refresh efile port if gone

Reviewed-by: slfritchie