Better error message in pandas.core.index
If sortlevel is called with an out-of-range level, the error message is a bit confusing, particularly if the level is equal to the maximum number of levels.

```
# Example from "Python for Data Analysys", page 148
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.arange(12).reshape((4,3)), 
    index=[list('aabb'), [1, 2, 1, 2]], 
    columns=[['Ohio','Ohio','Colorado'],['Green','Red','Green']])
frame.sortlevel(2)

.
.
.

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-     
packages/pandas/core/index.pyc in _get_level_number(self, level)
   1363             elif level >= self.nlevels:
   1364                 raise ValueError('Index has only %d levels, not %d'
-> 1365                                  % (self.nlevels, level))
   1366         return level
   1367 

ValueError: Index has only 2 levels, not 2
```
