remove dead code
eagerly build the relation object
eagerly build the bind map
eagerly build the cacheable query builder
fix ivar names and add reader methods
stop caching the class on the statement cache object
remove intelligence from StatementCache#initialize
decouple the factory method from the constructing model

The factory method only requires the constructing model to get the
connection object. Since the model is available when calling the factory
method, we can just pass the appropriate connection in.