Merge pull request #50 from kazuhisya/master

Updated rpmbuild spec file version 0.13
set timeout to all tests of ServerOperationFromClientSpec
unset GROOVYSERV_HOME, which may be set by GVM

If there is, it means that a test runs on the GROOVYSERV_HOME's implements instead of developing one.
renamed GROOVYSERVER_HOST/GROOVYSERVER_PORT to GROOVYSERV_HOST/GROOVYSERV_PORT

to unify naming convetion of environment variables for groovyserv
made use of InheritableThreadLocal in ClientConnection itself instead of ClientConnectionRepository to simplify
supported -Dtest.signle for unit test
fixed a typo of documentation comment
renamed "AuthToken:" header name to "Auth:"
made 'Cwd:' header optional

it's useful for simple client in case that switching cwd doesn't need
added InvocationRequestSpec
tweaked ClientConnection
introduced new 'Cmd' header for request of both shutdown and interrupt

- using 'Cmd: interrupt' for interruption by client instead of 'Size: -1'
- removed unncecessary PID file because serverself-shutdown is now available instead of killing a process by PID
- made GroovyServer use @Singleton to call a shutdown() from anywhere
avoided logging authToken for security
using ThreadInterrupt AST transformation in order to interrupt a user script
Revert "using ThreadInterrupt AST transformation in order to interrupt a user script"

This reverts commit 23c898490428a29453ebb22d37aa12dfa3cd5d39.
Because ThreadInterrupt may occur a worse performance like groovyConsole.
If using ThreadInterrupt, an option of '--interruptable' might be required.
tweaked a comment in RequestWorker
improved client interruption
added a return statement just in case on shtudown sequence in RequestWorker
fixed a wrong spell: teared -> tore
implemented GroovyClient for testing and made some tests use it

- renamed DirectAccessSpec -> GroovyClientSpec which is a test for GroovyClient
- moved TestUtils#getAvailableText() -> IOUtils#readAvailableText()