Fix for incorrect exception handling on request reading error in HA.

 o Added test and implementation for better error handling on early request parsing failure.
 o Moved serialization of requests and deserialization of responses into Protocol class.
 o Added handling of BranchedDataException in HAMS.
Merge pull request #1848 from jakewins/com-error-handling

Fix for incorrect exception handling on request reading error in HA.
Fix for race between kernel panic and mode switching

where a thread switching role to slave and
HaKernelPanicHandler thread were competing to harden the master
delegate handler. While all components were switching to their slave
versions a kernel panic event came in and made its switch, ending with
hardening the master delegate handler. All components would take that
as a sign about the master delegate being ready to use. When the
slave switching was done, that thread would set the master delegate to
the actual one, but all components would have already gotten a concrete
reference to the master such that the latter setDelegate call would
not affect them.

Fix is to only have setDelegate() (not harden()) dereference the Concrete
instance so that a setDelegate() after harden() will override that
delegate, making it visible to the peers of it.
Merge pull request #1852 from tinwelint/1.9-delegate-hardening

Fix for race between kernel panic and mode switching
Don't stop neo data source in case of failure

when switching to slave, because it will prevent future switch tries with
NPE in CommonAbstractStore.