match_all respects context

I found what I think is a bug when using `match_all` with a context. Previously with a query like

```ruby
TaggableModel.tagged_with("css", :on => :skills, :match_all => true)
```

Only TaggedModels which had css as the only tag in any context would be returned, excluding models which had tags in other contexts. With these changes `match_all` only applies to a specific context if one is given.