Create a gulp task for makara

We've been using Makara at Netflix and have moved to using Gulp from Grunt. The only thing holding us back from having everything in Gulp is Makara, so I've tried to move everything that is in the Grunt task to Gulp.

I haven't kept the exact structure, but the same basic functionality persists. I tried to add as many comments as possible to make it obvious what is happening but feel free to let me know what needs to be improved.