Feature dependency types

Adds the ability to add one or more behavior-centric flags on a library dependency

Flags are also grouped into keywords, like "dev", which are what you would expect to find in the project.json in most normal situations

flagsToAdd, flagsToRemove