Added LRU Cache for Prepared statements to prevent memory leaks

This is the third attempt at issue #184. This merge request uses the groupcache/lru package as an external dependency since the implementation in the package is simple and generic enough to use out of the box inside gocql.

I have written a few integration tests. Please let me know if these tests are insufficient and I can try and expand on them some more.
This test column family setup appears to duplicate the scaffolding in `TestPreparedCacheEviction` - do you think it might be worth factoring this out to avoid the duplication?