Fix backwards completion order
Add PATH completions for ':set browser'
Add completion caching

The PATH completion is a little intensive to do thousands of times, so
add some caching so we don't hit disk every time.