support for chained certificates
support for chained certificates

CA.sh from openssl.org (BSD style license) is used to setup a CA to be used for TestKeyStoreFactory.java
amending license headers
Chained certificates support

Added some testing such that the original single certificate behaviour is maintained now that the code supports chained certificates. Took the opportunity to inline a bunch of code in the tests (and AbstractNeoServer) too.
Merge pull request #1 from jimwebber/chained_certificates

Chained certificates support
Merge pull request #874 from sarmbruster/chained_certificates

support for chained certificates
Use separate directories for master and slave in ClusterTest
Adds ability to not participate in elections if not eligible for that

This is triggered by slaves asking for and getting elected at elections
 for master while copying the store. This should not be possible as
 the slave is not fit for that role at that moment. Hence, we introduce
 the ability for an HA state to talk about its suitability for master
 election.
Updated the README to something a bit more readable.
Updated the README.
Updated the README.
Updated the README.
Prevents timeouts during long write operations on the master side

Adds a writeComplete() handler on the Server.ServerHandler to update
 the corresponding transaction's timestamp
Properly handles exceptions for finishing channels that do not really
 have corresponding transactions
Introduce and use special class for transaction missing on master

Instead of catching an IllegalStateException, we use a specific
 TransactionNotPresentOnMasterException when the resume of a tx for
 finishing it is not present. That makes the corresponding catch clause
 more specific, avoiding swallowing a potential error.

Also makes sure that writeComplete() in Server.ServerHandler forwards the
 call down the pipeline
Moves Clock and implementations to kernel for usage elsewhere

Clock as an interface is useful for abstracting time. It is moved to kernel
 for usage elsewhere. The real implementation (delegating to System.currentTimeMillis())
 is also moved to kernel main source. The FakeClock dummy is moved to kernel test source.
Updates the current users to use the new import
FakeClock has some utility methods added so it can be more presicely controlled.
The single Clock method is renamed to be the same as the one in System
Fixes compilation error from Clock move
Adds exception as cause in a catch/log in MasterImpl
Fixed exception logging
Redesign of the way ResourcePool manages resources

ResourcePool now behaves more like CachedThreadPool supposedly does.
 It will slowly taper off excess resources keeping track of peak usage,
 greatly easing burden on the GC. This tapering is based on a timer.
ResourcePool is now the proud owner of its own Monitor, to log resource
 usage.
Extensive testing for the new ResourceMonitor

Also locks min resource pool size for SlaveClient to 1
Merge pull request #888 from digitalstain/transaction-timeout-fix

Prevents timeouts during long write operations on the master side