Нужна ли папка node_modules в директории проекта?
Папка node-modules нужна для разработки (проще говоря это различные библиотеки которые ты можешь использовать в проекте). Gulp это task менеджер который посредством различных заданий в итоге соберет твой проект. Чаще всего во фронт энде используют так называемые препроцессоры (Pug, Sass, Less...) и исходники хранятся в отдельной папке (например src или source), посредством Gulp эти файлы при помощи библиотек node_modules собираются в готовый проект (html, css, js) который и деплоится на хостинг. 
А если честно, использовать Gulp не имея хотя бы базовых знаний и представлений о NodeJS еще рано.
Gulp-cli нужен, чтобы в консоли можно было обращаться прямо к gulp, иначе пришлось бы писать что-то типа npm run ..., node gulpfile.js... Теперь можно писать gulp sass (например), и все. Папка node_modules должна появится, это модули, которые нужны для галпа, в частности, для работы, но она ВООБЩЕ не нужна на сервере! И не вздумайте ее пихать в гит или отсылать программистам)) Отсылать проект надо с package.json, и остальными папками, в которых Вы работаете, аля src, и плюс всякие там .babelrc, .gitignore, readme.md и так далее.