ENH: add BagObj.__dir__ to numpy.lib.npyio

This allows dir(bagobj), and also enables tab-completion on a BagObj, which can be useful in an interpreter or IPython:

```python
>>> dat = np.load('mydata.npz')
>>> dir(dat.f)
[]                 # Before this PR
['a', 'b']         # After this PR
>>> dat.f. ⇥ ⇥     # TAB TAB to see completions
                   # blank before this PR
dat.f.a  dat.f.b   # after this PR 
```

This PR has two commits: one makes the change above, the other adds a test of `BagObj`. This test tests both the main functionality of BagObj (`BagObj.__getattribute__` was not previously tested according to `runtests.py --coverage`), as well as testing this enhancement.

Also, this is my first PR to numpy, so please feel free to give me any helpful advice you'd like!
"Enables dir(bagobj) to work correctly." Just say what it does and omit the bug fix bit "work correctly". Maybe "Enable python dir command" or some such.