Cache engines
Faster pathsplit and pathjoin

This sacrifices the ability to have commas in paths for a little bit of
performance.

References #310.
Remove unused variable