BLXV-82 (8.36) Invert pcPulseTriggerNotGate to pcPulseGateNotTrigger.

This means that the default is false, which makes the expected behaviour
more obvious.
BLXV-82 (8.36) Add SingleExposureUnsynchronisedExternalShutter trigger strategy.
EPICS (8.36) Fix AbstractADTriggeringStrategy:setReadoutTime documentation.
BLXV-82 (8.36) Improve logging and add more comments.
BLXV-82 (8.36) Reset Zebra before each Arm.
BLXV-82 (8.36) Add runtime tests for invalid Zebra values.
BLXV-82 (8.36) Support collection times greater than 214 seconds.

Using TIMEUNIT_MS the maximum PC times are 214881.9984ms or 214s, so add
support for using TIMEUNIT_SEC, allowing collection times up to 59 hours.

Also add a minimumAccelerationDistance property which defaults to the old
hard coded value of 0.5 motor units.

Also add improved logging and short sleeps to prevent stale readbacks.
BLXV-26 BLXV-73 BLXV-81 BLXV-82 BLXV-83 (8.36) Refactor AD v17.

--------------------------------------------------------------------------------
* Add the ADcommon and GetPluginBaseAvailable interfaces. Together these
  interfaces allow plugins to take either another plugin or a driver as
  an input.
* Implement the ADCommon interface on the ADBase and NDPluginBase interfaces.
* Extend all ND plugin interfaces to use GetPluginBaseAvailable instead of
  just having a local copy of getPluginBase().
* Implement a new abstract base class, NDBaseImpl, which implements both
  ADCommon and GetPluginBaseAvailable.
* Extend all ND Plugin Impl classes from NDBaseImpl and remove functions
  now implemented in the abstract base class.
* Remove getPluginBase() from NDFileHDF5 since it 'contains an' NDFile
  rather than 'is an' NDFile.
* Replace all occurences of getNdFileHDF5().getPluginBase() or equivalent
  with getNdFileHDF5().getFile().getPluginBase().
* Add an UnsynchronisedExternalShutterNXCollectionStrategy interface and
  implement it on SingleExposureUnsynchronisedExternalShutter and a new
  MultipleExposureSoftwareTriggerAutoModeUnsynchronisedExternalShutter.
* Implement an input parameter on V17PluginFactoryBeanBase using an ADcommon
  property.
--------------------------------------------------------------------------------
BLXV (8.36) Tidy import.
BLXV-26 BLXV-73 BLXV-81 BLXV-82 BLXV-83 (8.36) ADControllerImpl improvements.
--------------------------------------------------------------------------------
* Add support for UInt32 in ADControllerImpl.
* Move the pointless getLength checks in ADControllerImpl out of each case
  statement to just after it.
--------------------------------------------------------------------------------
BLXV-26 BLXV-73 BLXV-81 BLXV-82 BLXV-83 (8.36) EpicsController improvements.
--------------------------------------------------------------------------------
* Add a warning when the count of elements returned from a channel is different
  to the count requested.

  IMPORTANT: This immediately highlights a variety of Epics failure
             modes which would otherwise go unnoticed!

* Add length of timeout used to timeout exceptions.
--------------------------------------------------------------------------------
BLXV-26 BLXV-73 BLXV-81 BLXV-82 BLXV-83 (8.36) Zebra CV move ctr improvements.
--------------------------------------------------------------------------------
* Calculate minimumAccelerationTime from getCollectionExtensionTimeS for
  detectors implementing the UnsynchronisedExternalShutterNXCollectionStrategy
  interface.
* Add checks for minimum acceleration distance taking too long.
* Added a note that the setMinimumAccelerationDistance should never be smaller
  than the deadband of the motor.
* Added a getMinimumAccelerationDistance() method.
--------------------------------------------------------------------------------
Merge remote branch 'auto+dls_sw+i15+software+gda_versions+gda_8.36a+workspace_git/BLXV-82'

Conflicts:
	uk.ac.gda.epics.adviewer/src/uk/ac/gda/epics/adviewer/ADControllerImpl.java
	uk.ac.gda.epics/src/gda/device/detector/areadetector/v17/NDStats.java
	uk.ac.gda.epics/src/gda/device/detector/areadetector/v17/impl/NDArrayImpl.java
	uk.ac.gda.epics/src/gda/device/detector/xmap/edxd/EDXDMappingController.java
	uk.ac.gda.epics/src/gda/device/zebra/ZebraConstantVelocityMoveController.java
	uk.ac.gda.epics/src/gda/device/zebra/controller/impl/ZebraImpl.java
	uk.ac.gda.epics/src/gda/spring/V17PluginFactoryBeanBase.java