Refactoring the Lingon core

The motivation behind this refactor was to allow nested file dependencies: Using include directives in files that are imported with include directives.

To achieve this I created a new map stream: "directiveStream" which is piped right after the vfs.src stream. First, It extracts the glob patterns from the directives in file headers. Then it calls itself recursively for any additional file streams created from found glob patterns. It's also responsible for piping the preProcessors since they need to be piped to each file before concatenation.

While working on this I also refactored some other aspects of the core to create a better separation between the core parts (Lingon, Environment, directiveStream).