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.
Your previous comment was:

> I am actually thinking of moving the initialization to the CreateSession function.

Which led me to think that you were not sure what the most appropriate scope for the cache is. So all I was trying to say was that, if in doubt, we should try to keep the cache instance roughly inline with the way the cluster views the prepared statements. But maybe that is not such a helpful suggestion from me, as it is not very concrete.

Given the run of this conversation, where would you now like to position the cache?