Implement delegate_names to allow decorating delegated attributes
This PR defines a `delegate_names` decorator that provides an alternative (and to my taste, much nicer) syntax for pinning delegated attributes to Accessor classes.

Effectively this just moves the call to `_add_delegate_accessors` from after the class definition to a decorator on the class.  I find this much harder to overlook when reading a class definition.

- [ ] closes #xxxx
- [ ] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry
