Re-factor for the future!

Hi I have updated the gem after many weeks!

I still have these failing tests:

```
Finished in 3 minutes 31.81 seconds
180 examples, 10 failures, 5 pending

Failed examples:

rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/enumerable.rb:220 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when enumerating statements it should behave like RDF_Enumerable when enumerating subjects should implement #each_subject
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/enumerable.rb:270 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when enumerating statements it should behave like RDF_Enumerable when enumerating predicates should implement #each_predicate
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/enumerable.rb:320 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when enumerating statements it should behave like RDF_Enumerable when enumerating objects should implement #each_object
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/enumerable.rb:415 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when enumerating statements it should behave like RDF_Enumerable when converting should implement #to_hash
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/queryable.rb:272 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when querying statements it should behave like RDF_Queryable#first returns nil when the pattern fails to match anything
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/queryable.rb:306 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when querying statements it should behave like RDF_Queryable#first_subject returns nil when the pattern fails to match anything
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/queryable.rb:341 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when querying statements it should behave like RDF_Queryable#first_predicate returns nil when the pattern fails to match anything
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/queryable.rb:376 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when querying statements it should behave like RDF_Queryable#first_object returns nil when the pattern fails to match anything
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/mutable.rb:79 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when updating it should behave like RDF_Mutable#load should load statements with a context override
rspec /Users/rufuspost/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rdf-spec-0.3.8/lib/rdf/spec/mutable.rb:107 # RDF::FourStore::Repository 4store it should behave like RDF_Repository when updating it should behave like RDF_Mutable when deleting statements should support deleting multiple statements at a time
```