Now only allowing exclusive access to a clang TU

libclang isn't thread-safe so compiling the same file from multiple
threads doesn't work. So accessing a file TU has been (and remains)
protected by a mutex in ycm_core.

But we were allowing ycmd to block incoming completion requests on that
mutex. This could result in very long response times and eventually in
the server exhausting all of its threads. If the server uses 10 threads
and all of them are blocked on one TU mutex and a new request comes in,
that request is further blocked, even if it's only an identifier
completion request that wants nothing to do with libclang.

Now we recognize the file is being compiled in a separate request and we
raise a RuntimeError to abort early. This should prevent thread
exhaustion.
Updating to boost 1.57
Updated to gmock r501
Using gcc4.8 on Travis
Now only building tests when DEV_MODE flag set

USE_DEV_FLAGS also renamed to DEV_MODE
Revert "Now only building tests when DEV_MODE flag set"

This reverts commit d10d787d9e16a1313d67ae07edd9c41b38f56ca9.
Make g++4.8 the default Travis g++
Initial clang_complete like parameter completion