ENH: 'replaced' series.replace with generic.replace !

CLN: cleaned up internal block action routines, now always return a list of blocks
CLN: Add abstract base classes for certain objects

Instead of the `is_series`, `is_generic`, etc methods, can use the ABC*
methods to check for certain pandas types. This is useful because it
helps decrease issues with circular imports (since they can be easily
imported from core/common).

The checks take advantage of the `_typ` and `_subtyp` attributes to
handle checks. (e.g. `DataFrame` now has `_typ` of `"dataframe"`, etc.
See the code for specifics.

PERF: register _cacher as an internal name

BUG: fixed abstract base class type checking bug in py2.6

DOC: updates for abc type checking