pandas.options should raise an AttributeError subclass
 `hasattr` expects `AttributeError` when looking up. Let's make it simple and backward compatible, replace `KeyError` with this class:

``` python
class OptionNotFound(AttributeError, KeyError):
    """Exception for pandas.options, backwards compatible with KeyError checks"""
```

cc @d10genes this should fix your problem.

simple example:

``` python
In [5]: class OptionNotFoundError(AttributeError, KeyError): pass

In [6]: class MyObject(self):
   ...:
KeyboardInterrupt

In [6]: class MyObject(object):
   ...:     @property
   ...:     def prop(self):
   ...:         raise OptionNotFoundError("HEYO!")
   ...:

In [7]: a = MyObject()

In [8]: hasattr(a, "prop")
Out[8]: False

In [9]: OptionNotFoundError = KeyError

In [10]: class MyObject(object):
    @property
    def prop(self):
        raise OptionNotFoundError("HEYO!")
   ....:

In [11]: a = MyObject()

In [12]: hasattr(a, "prop")
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-12-7205b5401c9b> in <module>()
----> 1 hasattr(a, "prop")

<ipython-input-10-7a717a2e41df> in prop(self)
      2     @property
      3     def prop(self):
----> 4         raise OptionNotFoundError("HEYO!")
      5

KeyError: 'HEYO!'

In [13]:
```
