Use the clang 3.4 release tarball instead of apt for clang 3.4.

It appears the llvm.org/apt/ repository isn't always reliable.  So let's
use the release tarball instead.  Also, make using 3.4 conditional, so
we can use the clang 3.3 if things still manage to go awry in the
future.  Note: using 3.3 means that we won't get leak detection.

I left the logic for using llvm.org/apt/, just in case we want try using
it again sometime.
Make FPC_* defines an enum type in path.h.
Add os_stat to os/fs module.
Refactor fullpathcmp.
Add unit tests for gettail.
Refactor gettail.
Move gettail_dir more closely to its usage.
Add unit tests for gettail_sep.
Refactor gettail_sep.
Add unit tests for getnextcomp.
Adapt getnextcomp to coding style.