NotImplementedError messages doc update #7872

closes #7872

I have updated the NonImplementedError messages #7872 in all places applicable.
It includes changes to statements of type
   * raise NotImplementedError
   * raise NotImplementedError()
Comment on the changes. 

The one place I have doubt and not sure whether to add one or not would be https://github.com/pydata/pandas/blob/master/.coveragerc#L17


You can use inspect to do this (would need some testing esp. 2.6 & 3.x):
```
import inspect
class AbstractMethodError(NotImplementedError):
    def __str__(self):
        return "%s must be defined on the concrete class of %s." % (self.method, self.klass)
    def __init__(self, message=None):
        method_frame = inspect.currentframe().f_back
        self.klass = method_frame.f_locals['self'].__class__.__name__
        self.method = inspect.getframeinfo(method_frame).function

...
class A(object):
    def foo(self):
        raise AbstractMethodError()

In [11]: A().foo()
---------------------------------------------------------------------------
AbstractMethodError                       Traceback (most recent call last)
<ipython-input-11-fcb97135a52f> in <module>()
----> 1 A().foo()

<ipython-input-11-845149caecea> in foo(self)
      1 class A(object):
      2     def foo(self):
----> 3         raise AbstractMethodError()
      4 

AbstractMethodError: foo must be defined on the concrete class of A.
```

(perhaps there's a neater way?)