Move VFS implementations and API to lib/vfs/ and drop the 'vfs' from the name

As we're now starting to gather a larger collection of VFS
implementations, group them all together within their own folder.
Update .gitignore

Ignore Vim .swp, log and ctags files
Move general purpose utility code into base/ folder

Group code that is not specific to the app or domain into
the base/ folder.
Refactor duplicated code for Promise-based HTTP client wrapper