Fix skipping of unsupported locales on OpenBSD.

has_locale() checks whether it can set LC_CTYPE, assuming that if this
succeeds, the locale is supported.

The problem is, on OpenBSD, setting LC_CTYPE for (e.g.) "fr_FR.ISO8859-1"
succeeds for LC_CTYPE, but *not* for LC_COLLATE (presumably incomplete
locale support on OpenBSD). This means that the tests which use LC_COLLATE
will fail, when they should be skipped.
Fix a regex test on OpenBSD.
Fix test_is_executable() on OpenBSD.

The path being checked was platform specific. Let's instead lookup
a binary pretty much guaranteed to exist and using ${PATH}.
Check for PHP binary early on.

This avoids obscure error messages later.
Merge pull request #27 from hippyvm/openbsd-test-failures

Openbsd test failures