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 think the best thing to do is for the client to mirror the scope that server holds for prepared statements. The reason why I formulate it this way is because I don't know what the actual server scope is.