Workaround for intermittent HSQLDB start failure

When running the build there is an occasional HSQLDB startup failure.
The root cause for this failure is:

  java.net.SocketException: Invalid argument

This exception is thrown on JDK 7 OS X when there are > 1024
open file descriptors. See this Stack Overflow thread:

http://stackoverflow.com/questions/16191236/tomcat-startup-fails-due-to-java-net-socketexception-invalid-argument-on-mac-o

This is fixed in Java 7u60:

https://bugs.openjdk.java.net/browse/JDK-8021820

In the meantime, this workaround will trap that exception and
make several attempts at starting up HSQLDB before giving up.

Previously it was assumed that a startup failure was due to
a port conflict. This is unlikely because an open port is
selected by the test prior to configuring HSQLDB. If this does
happen the log file will indicate so:

org.springframework.beans.factory.BeanCreationException:
  Error creating bean with name 'hsqldb' defined in class...
...
Caused by: java.lang.IllegalStateException: HSQLDB could not be started on 0.0.0.0:6379, state: SHUTDOWN
...
Caused by: java.net.BindException: Address already in use
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
...

Rework of the while loop

Modified the while loop to use a boolean instead of
always forcing a break. A server start failure
still causes a break. This avoids the need for
another boolean to track whether an error occurred.
Added command line option to generate heap dumps

If a test generates an OutOfMemoryError, a heap
dump will be generated that can be used to determine
the root cause.

See http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/clopts.html