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.
What do you mean? We in gocql don't have an efficient way of tracking server scope. It is convoluted in the Node interface which can represent a connection, host(Collection of connections) or collection of hosts. The LRU tracks the host that the statement was prepared for by using the connection address as the first part of the key.