Extract Class: PathHelper.

There are a few path-based operations the locator needs: path joining
(to build up a command path from the base path and the command name)
and atom/absolute path detection (command names must be either absolute
paths or single atoms).

Because this logic can be different for different platforms (i.e.
Windows), we should try to extract that behavior into a separate class.
I'm not positive that this PathHelper abstraction is the best option,
but it's a step in the right direction.
Memoize the default path helper and executable tester.

We don't need to create a new instance of these classes every time the
getter method is called.
Initialize the test instances in the setUp method.

I didn't originally do this for the ExecutableTester because of the
ambiguity between causing a method named "_executableTester" on the test
object and invoking the "_executableTester" member variable object.