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.
I don't completely understand the gist of this test. My current understanding is that you set a max cache size of 30 and then execute 100 bound parameter statements followed by 100 lined statements. Hence it is unclear from a behavioral perspective as to what effect each statement variant has on the cache size. Maybe it would be clearer if you asserted the size of the cache between the two for loops (i.e. on line 659 of this revision)?