I think `limit` should be an optional constructor parameter too. Compare:

```
new StreamBuffer(throwOnError: true, limit: 10);
```

Vs:

```
new StreamBuffer(throwOnError: true)
    ..limit = 10;
```

Also, if we are going to let people adjust the `limit` on-the-fly, why not also allow flipping `throwOnError` on-the-fly too?