Use flake8 as the python syntax checker

Because flake8 provides # flake8: noqa for forced ignoring of statements

And move nerdtree to submodules
Use cmake for building YCM