Make SkyCoord.frame be the internal frame object

This is failing one test in `test_api_ape5` (which actually points to a shortcoming in test coverage for `test_match.py` since it should be failing there as well).  The reason is that `SkyCoord` doesn't implement `__getitem__`.  I think this should be relatively straightforward but it's somewhat out of scope here.  The failure also just showed up on the last commit which hacks away half of the `SkyCoord.match_*` function code.  I think the code edits are right and all should work once `__getitem__` is doing the right thing.