Switch around to properly look up the executable bit in the basis. We do this with a load-time switch around supports_executable(), rather than a runtime if supports_executable() check. It would be nice to inline the _is_executable_* check on platforms that support executable, but we had a function call before, so we haven't degraded performance.