Fixes: https://github.com/smithy-lang/smithy/issues/2261
For operation errors like:
```
errors // foo
: // bar
[
// baz
MyError
]
```
you'd expect formatting of:
```
// foo
// bar
errors: [
// baz
MyError
]
```
Prior to this commit, we were handling the cases of `foo` and `bar`,
but inadvertently doing the same thing for `baz`. This is because
we were looking for comments to pull out to above `errors` in the
direct children of OPERATION_ERRORS, which include all WS within the
`[]`.
To make it work as expected, we need to only pull out comments in the
first two positions (`foo`, `bar`), and leave the rest for BracketFormatter
to format. BracketFormatter was expecting to operate on all the children
of a given TreeCursor, so I modified it to act on an arbitrary stream of
cursors, and added a way to get all remaining siblings after a cursor.