Make utility functions private to clean up API documentation
Add YARD-format documentation for "direct" code.

No documentation yet for methods added by "macros".
Move component helpers into sub-modules

This makes the project clearer and easier to document.
Add documentation for Job's attributes and sections
Make attribute and section macros take only a single parameter

Now that the uses of the macro are divided up, we no longer need the generality.
Document the remaining components
Add a stub module for Notifications.