ENH add level argument to set_names, set_levels and set_labels (GH7792)
Closes #7792

New `level` argument:

```
set_names(self, names, level=None, inplace=False)
set_levels(self, levels, level=None, inplace=False, verify_integrity=True)
set_labels(self, labels, level=None, inplace=False, verify_integrity=True)
```

e.g.
    set_names('foo',level=1)
    set_names(['foo','bar'],level=[1,2])
    set_levels(['a','b','c'],level=1)
    set_levels([['a','b','c'],[1,2,3]],level=[1,2])

Added tests for the reverse (len(levels) == 2 but level =1)
 look good
 thanks! this is a nice enhancement
