RFC: Implementation of deleteat! (Fixes #5118)

As noted in #5118, `delindex!` was previously proposed but never implemented.  Here is an implementation ~~delindex!~~ `deleteat!` for 

* single indexes
* `Range1`
* general iterable of indices (must be sorted)

~~delindex!~~ `deleteat!` is more efficient than `splice!` when the items being removed from the collection are not needed and returning them is costly.

This PR also changes/fixes the return type of one of the `splice!` implementations for `BitArrays`, which was returning the modified array instead of the spliced-out region.  cc:@carlobaldassi

**Edit: changed name from `delindex!` to `deleteat!`.**