Fixed PreBodyTagFilter partial writes handling

The `PreBodyTagFilter` filter we assign to the `Response.Filter` property when Glimpse `<script...>` tags need to be injected, didn't cope well with partial writes. As it seems, it is quite possible that the `PreBodyTagFilter.Write(byte[] buffer, int offset, int count)` is called multiple times when streaming the output for one request. There seems to be a buffer size of a little bit less than 16K (16352 bytes), which results in outputs of more than 16K to be written in multiple calls to that method.

Most of the time this wasn't giving any issues, but there are some specific cases that aren't dealt with properly:

- multiple warnings were being written to the glimpse.log because the `</body>` tag could not be found in the first chunks, even though the script injection succeeded because it eventually found a `</body>` tag in the last chunk. This is now fixed and the warning will only be written when there is effectively no `</body>` tag found
- If you were very unlucky and the chunks actually split up your `</body>` tag (chunk1 ends with `</bo` and chunk2 starts with `dy>` then Glimpse script tags would not be injected even though the received HTML markup contains a `</body>` tag. This is now fixed as well

You could simulate the old situation by simply creating the following controller action, you'll see that Glimpse scripts are not being injected, even though there is a `</body>` tag.

```
public ActionResult TestFilterIssue()
{
    return new ContentResult
    {
        Content = "<html><body>" + new string('X', 16337) + "</body></html>"
    };
}
```