Added more strict check on `check_file_contain_within`

`check_file_contain_within` uses `sed`'s range, however when the end
portion of the range is not found in the file the end of the file will
be the end of the range. This can cause false positives when an end is
missing.

For example:

```
<IfModule>
<IfModule>
StartServers 5
```

would currently pass the following assertion in
[serverspec](https://github.com/serverspec/)

```
it { should contain('StartServers 5').from(/^<IfModule>/).to(/^<\/IfModule>/) }
```

I would expect this to fail due to the fact that `</IfModule>` does not
exist in the example above.

The solution that I propose is adding an additional check that will
verify the range using `sed` as it currently does plus doing the
equivelent of what the `contain().before()` does on the closing tag.

This addresses [this
issue](https://github.com/serverspec/serverspec/issues/467)