Add safety around accessing node for an OFD, clean-up xattr code for path vs. ofd

There are a few fixes here.  First, the way we are working with open files is a bit flawed, because we never check if the node's exist--we assume they do (they should!) but if they don't, we'll blow up when the returned `node` is undefined.  I've made `ofd.getNode()` work more like `find_node`, which will error if the node doesn't exist--all of our code paths assume this is the case now.

The second thing is to clean up how we do xattr stuff, and separate path vs. ofd logic, deal with errors early, get rid of the `node` check etc.

This should help catch issues like @k88hudson was having, and let us figure out where the bug really is.