CLN: Make repeat method consistent
Follow-up to changes made in #24349.  Basically trying to make the `repeat` method as consistent as possible across the various implementations within the codebase.

Summary:
- Made the function signature consistent: `repeat(self, repeats, *args, **kwargs)`
  -  I _think_ this could be restricted to `repeat(self, repeats, axis=None)` but I opted to match on the least restrictive function signature instead.
- Made the docstrings consistent and shared where possible.
- Removed unnecessary implementations where the base implementation works
  - Mostly marked with TODO's to remove, so seemed safe, and tests pass
- Cleaned up related tests:
   - Condensed tests where possible
   - Expanded some test cases

cc @TomAugspurger 
