Unit file parsing, multiple peers, and more!

* unit files are searched for a [X-Coreinit] header
* the X-Coreinit-Peers field is a comma-delmited list of unit file names that must be present on a Machine for it to run the job in question
* when a job is stopped with ‘corectl stop’ any other jobs that have it listed as a peer will also be stopped (but not removed from coreinit altogether)
* any fields like X-Coreinit-Machine-<KEY>=<VALUE> in the [X-Coreinit] header of a given unit file acts like the —require flag to ‘corectl start’
* the X-Coreinit-Provides and X-Coreinit-MachineSingleton fields allow a unit to prevent other units that provide the same things from landing on the same machines