Add simple, queue based kryo pool

I'm submitting this as a proposal for a simple kryo pool, didn't want to push it directly into master. Some words on the suggested pool...

Kryo instances are created using a `KryoFactory` that's passed to the pool.
The pool uses a `ConcurrentLinkedQueue` to manage kryo instances.
The pool also allows to run callbacks by passing a kryo instance.

The included `KryoPoolBenchmarkTest` (with `ITER_CNT = 100000`) shows
the following output for me (excerpt):

    >>> With pool (average): 8 ms
    >>> Without pool (average): 2,105 ms

KryoPool usage example:

```java
KryoFactory factory = new KryoFactory() {
  public Kryo create () {
    Kryo kryo = new Kryo();
    // configure kryo
    return kryo;
  }
};
KryoPool pool = new KryoPool(factory);
Kryo kryo = pool.borrow();
// do s.th. with kryo here, and afterwards release it
pool.release(kryo);

// or use a callback to work with kryo
String value = pool.run(new KryoCallback() {
  public String execute(Kryo kryo) {
    return kryo.readObject(input, String.class);
  }
});
```
>
> what if Kryo/the ThreadLocal used from within an I/O event loop running
> with a single thread only?


Seems like it would work fine? If you have a single thread, you don't need
more than one Kryo instance.


> So IMHO using ThreadLocals is more complex and the user needs to be sure
> in which invironment he uses a ThreadLocal.


Agreed, but only slightly. As long as both ways are mentioned I'm good with
the pool.