Simplify resume freezing; avoid transformations on foreign fields. Fixes#198
but needs followup to allow users to specify how and when freezing, encoding,
and transformations occur.
(1) AbstractResume adds complexity without contributing utility. There's not
really a clean "class" abstraction in JavaScript to begin with; CoffeeScript
classes, as nice as they are syntactically, occlude the issue even further.
(2) AbstractResume currently functions as a container for exactly two functions
which arguably should live outside the resume class anyway.
Currently, FRESH themes contain a `src` folder that contains theme artifacts.
This commit allows the theme to specify a different folder (including "." or
""), supporting arbitrary folder structures.
Try to register all javascript files found in themes as handlebars
helpers.
Note that, unlike all other theme files currently, format directories
are ignored. I don't think there's a use case for format-specific
helpers, and this gives theme developers the flexibility to put them
either in top level files or organize them in subdirectories however
they see fit.
Note also that the theme format seems to be primarily documented in
<https://github.com/fresh-standard/fresh-themes>. This newly recognized
theme file type should be documented there should this branch be merged.
Fix output file name glitch, writing CSS files to destination folder,
and an issue where the process would evaporate before PDF/PNG generation
could complete.
Merge implicit and explicit generation paths, start emitting file
transform & copy signals, fix various bugs, introduce new bugs, support
better --debug outputs in the future.
Remove file-based open methods from resume classes; force clients to use
clean string-based or JSON overloads; fix processing glitch in
validate(); tweak outputs; adjust tests; update CHANGELOG; etc.