Add terminals functionality and client code

This commit fixes compilations errors in all the code as well as adding
some client functionality.
Add gitignore component for Vim