Implement IList<T>, IReadOnlyList<T>, and IList on Regex Collections

Fixes #271

### TODO

- [x] Implement `IList<T>`, `IReadOnlyList<T>`, and `IList`
- [ ] Add tests
- [ ] API review
- [ ] Code review

### Questions/Notes

- As @sharwell noted in #277: `GroupEnumerator` is internal, so it might be possible to change the type of `GroupEnumerator.Capture` from `Capture` to `Group`. This would make the explicit cast in the generic `Current` property unnecessary.