Fix for comparisons of categorical and an scalar not in categories
Up to now, a comparison of categorical data and a scalar, which
is not in the categories would return `False` for all elements when
it should raise a `TypeError`, which it now does.

Also fix that `!=` comparisons would return `False` for all elements
when the more logical choice would be `True`.

Fixes the raised issue in https://github.com/pydata/pandas/issues/9836#issuecomment-92123057

Still asking why equality doesn't raise when comparing with a non-existing category.
 @kay1793 This is consistent with what Python does for non-comparable types:

```
# python 3
In [1]: 'foo' == 123
Out[1]: False

In [2]: 'foo' > 123
TypeError: unorderable types: str() > int()
```
 thanks.
 merged via https://github.com/pydata/pandas/commit/35b20d8aaee40f1b33a7e71c15f3fd88ece2e7ae

thank you!
