Implement feature to block build until replication is completed.

Add ReplicationQueueTaskDispatcher that will prevent builds from
leaving the queue until the replication is completed, if replication
is supported and configured for that server. If wait for replication
event times out or if the replication failed, build will be failed.

Add a global configuration parameter to allow configuration of
replication cache expiration time.Replication feature requires a
cache for replication events until we can complile against Jenkins
1.520 which introduce a QueueListener extension point.

Change-Id: I58782c2278c1ef68cae405495178c1ea89e279b8