allow empty dirs to exist when doing checkout

Cannot checkout when there exists an empty directory in the working directory and there are files beneath that directory to be checked out.  Checkout will fail with `-1` and not set an error.

This is because when we `advance_into` an empty directory, we return `GIT_ENOTFOUND`.  Checkout will propagate this as an error condition.  Instead, we should simply treat this as advisory and advance to the next workdir item in this case, which will allow the checkout to proceed.

@arrbee could you sanity check?