Add ghost targets to nodepool

We want to use nodepool to generate turbo-hipster servers that
connect directly to zuul. This means that a real target, like
jenkins, isn't required. However, the nodepool launch algorithm
requires a target.

This change allows a user to mark a target in the config as a
ghost-target:

targets:
  - name: turbo-hipster
    ghost-target: true

Note that no jenkins details are specified. This target will now
not be taken into consideration in the launch algorithm. Except
that labels which are to have no real target will be assigned to.
Keeping nodepool behaving as expected.

Labels that do not require an actual target then simply need to
specify which ghost target they belong to, and they will only ever
be assigned to that ghost target, this is done with a 'ghost-name':

labels:
  - name: th-mysql
    image: th-mysql
    min-ready: 1
    ready-script: start_TH_service.sh
    ghost-name: turbo-hipster
    providers:
      - name: rax-syd

At this point in time, turbo-hipster has no zmq functionality, so
this change also allows allows the use of no zmq-publishers.
Merge branch 'turbo-hipster' of https://github.com/matthewoliver/nodepool into turbo-hipster

Conflicts:
	nodepool/nodepool.py