Contextualizer and decontextualizer rule using pattern matcher

In light of what was discussed [here](https://groups.google.com/forum/#!topic/opencog/-hqPQRdIa7E), I split the contextualize rule a) into two patterns: one BindLink applies if the relation is an EvaluationLink, the other one applies for all other cases. I added a rule for contextualizing subsets.
I'm not quite clear on the difference between SubsetLink and InheritanceLink: [Here](http://wiki.opencog.org/w/SubsetLink) it says that a "SubsetLink denotes extensional inheritance between two Atoms. An example of a SubsetLink would be:
```Subset dog animal```"
For me, this looks identical to an InheritanceLink -- at least to how I've used it so far. Could you elaborate on the difference, @bgoertzel, @cosmoharrigan?
I've added a decontextualize rule as well.
As I've alluded to in the discussion, having to use distinct patterns simply to differentiate cases seems quite cumbersome. Isn't there a better way?
The natural language representation for the output would be something like "Ben is competent in the context of doing mathematics, while he is not competent in the context of juggling". Seems a bit redundant to me -- or did you have something more specific in mind?