Moving a few things around before some bigger refactoring.
Refactor to simplify how builds work and to extract asset types from the core config classes.
Extract file extensions from Group in Recipe classes.
Only pass files ending in .ejs through the EJS template engine.
Refactor source selection when a source map is required.
Add support for asset-pipeline-style filename fingerprinting, including rewriting path references in source maps.
Move Group and Package into lib/config since they deal with interpreting the config file.