Dequeue changes when new patchset created.

When a new patchset is created for a change that is in a pipeline,
cancel running builds and dequeue that change (and possibly
dependent changes that can no longer merge).

Make this optional (and document the option).

Fixes bug 1022643.

Change-Id: I8f591956cf86645443e4b6075b8cdfc95a939e4f
Reviewed-on: https://review.openstack.org/20948
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
(cherry picked from commit 2fa509606410c96da90fc57e6d6daaf547ced1b7)

Conflicts:
	zuul/layoutvalidator.py
	zuul/model.py
	zuul/scheduler.py
Merge remote-tracking branch 'gtt/master' into gtt