Categorical cleanup
Make categorical a little more user-friendly and add some documentation.

Added a describe method as well.
 looks good to me, marked for 0.11.1
 To be consistent (and not have the deprecate warnings internally), a couple of minor changes

```
./doc/source/groupby.rst:
  609 : Categorical variables represented as instance of pandas's ``Factor`` class can
./pandas/core/frame.py:
 5427 :     ndarray corresponding to Factor levels
./pandas/core/panel.py:
   85 :     time_factor = Factor.from_array(time)
   86 :     panel_factor = Factor.from_array(panels)
./pandas/core/reshape.py:
  813 :     """ given a tuple of shape and a list of Factor lables, return the expanded label indexer """
./pandas/tools/merge.py:
 1193 :             levels = [Factor.from_array(zp).levels for zp in zipped]
 1231 :             factor = Factor.from_array(concat_index)
```
 Should I just change everything to Categorical? My reasoning for the deprecation is that Factor conflicts with the use of the term in patsy where a factor is not a "factor" in the R sense. I believe @wesm and @njsmith decided that Categorical was unambiguous and preferred, and I tend to agree but don't have a really strong feeling about this.
 I say yes (its not much to change), leave in `Factor` for 0.11.1 with your deprecate, and can remove in 0.12?
 Ok, should be better. No deprecation warnings internally now, though I left the term factor in a few places where it's clear from context what it's referring to (I think).
 @jseabold can you add a release notes & v0.11.1 mention?
 thank you sir!
