Ability to reload maker files

Also shifted code into its own file so I stop hunting for it.
Support fake targets.

These are targets with no rules that can be used to group related
targets together so that they can be forced to be built.  The
dependencies can be objects or files.