split out fleetctl into jobs/units/schedules

Yeah, I think we could end up with a few objects once this is all fleshed out. Unit could effectively become UnitFile, Job could become Unit, and UnitState could encompass the current UnitState and JobState:

```
type UnitFile struct {
    Contents string  // this will be []UnitOption soon
}

func (uf *UnitFile) Hash() [sha1.Size]byte { ... }

type Unit struct {
    Name string
    File *UnitFile
}

func (u *Unit) NameInfo() *UnitNameInfo { ... }

type UnitState struct {
    ClusterState string  // naming? this is inactive, loaded, launched
    MachineID string
    SystemdLoadState string
    SystemdActiveState string
    SystemdSubState string
}

type UnitSchedule map[string]string  // map of UnitName -> MachineID
```