Add missing dependency.
Fix a bug in the GdlCleaner.

This was causing zero-arity relations to not get converted to
propositions when the relations were inside "not" literals.
Merge pull request #46 from ggp-org/gdl-cleaner

Fix a bug in the GdlCleaner.
Improve ProverStateMachine performance on many games.

This commit improves the AimaProver in a couple of ways:

1) Variable renaming, a perf bottleneck, is done less often.
2) When a query is found to not depend on any "true" or "does"
sentences, its result is cached for the life of the AimaProver.
This can turn arithmetic, for example, from a complex recursive
query to a fast cache lookup for most of the game.

Testing on all games in the ggp.org repositories indicates that
perf has not meaningfully worsened on any games, whereas for some
math-intensive games (e.g. Nim and Colonel Blotto variants) perf
has increased by a factor of 10 or more.

The only downside here is increased code complexity within the
AimaProver.
Merge pull request #45 from dalethatcher/missing-dependency

Add missing dependency
Fix crashes when removing all of the listed players in the Server app.
Merge branch 'master' of https://github.com/ggp-org/ggp-base.git
HTTP uses CR+LF to separate lines.

See RFC2616, section 4.1.
Make the GdlPool thread-safe when case sensitivity is off.
Merge pull request #54 from ggp-org/gdl-pool-concurrency

Make the GdlPool thread-safe when case sensitivity is off.
Merge pull request #51 from matt-thomson/http

HTTP uses CR+LF to separate lines
Merge pull request #48 from ggp-org/prover-perf

Improve ProverStateMachine performance on many games.
Handle messages without a Content-Length header.

If no Content-Length is supplied on a response, the client should read from
the server until the connection is closed.  See section 4.4 of RFC 2616.
Make sure new cache in AimaProver is thread-safe.

Previously, ProverCaches only had to exist on a single thread over the
lifetime of one call to the AimaProver. Now we need to ensure that the
longer-lived cache for constant values is thread-safe when accessed and
modified by multiple threads.

A ConcurrentHashMap provides thread-safety with relatively little
overhead. Note that computations for the same query on different threads
will return the same result, so we don't need to worry about dealing
with that.
Merge pull request #56 from ggp-org/prover-perf

Make sure new cache in AimaProver is thread-safe.
added depth-limiting heuristic player
Merge pull request #55 from matt-thomson/http

Handle messages without a Content-Length header.
Fix heuristic player for single player games
Added timeout to heuristic player. Currently the player returns a random move when timed out.
Change timeout behaviour to cache and return the best move so far.

Optimize timeout for network latency issues.