Match_all respects context (v3.0.1 backport?)

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, but only css in the skills context. With these changes `match_all` only applies to a specific context if one is given.