OF-2251: Make BOSH threadpools more configurable
This adds properties for minimum amount of, as well as the TTL for surplus threads in the threadpool used for BOSH network IO.
An additional property is added for the minumum amount of threads in the pool used for BOSH packet processing (which up to now was hard-coded to use 25% of the max).
When switching from JiveGlobals to SystemProperty, there's no need to explicitly call 'migrateProperty' anymore.
OF-2247: Improve type-safety of BOSH implementation & improve configurability.
By using classes from the `java.time` package instead of `long` values, better type-safety is achieved.
Various getters that directly return a property value have been replaced with a `SystemProperty`, which does a better job of documenting their use in the admin console.
Fixes for OF-2246, OF-2249 and OF-2250
This commit started off as an implementation of a new feature that allows backup delivery to be disabled (OF-2246). While implementing that, two bugs were discovered with how backup delivery is applied for BOSH and multiplexers (OF-2249, OF-2250) for which the fix has been included in this commit.
A slight refactoring of the BOSH connection implementation was added, to bring those more in-line with Connection implementations of other connection types.
OF-2247: BOSH session config should not be mutable
Attributes of a BOSH session that cannot change after the session was created should not be mutable, as that will make it harder to reason about certain complexities in the code (like thread-safety).