#### Problem
Self-closing tags are more convenient when there are no children. For
instance, React's JSX allows it.
Before, self-closing tags where considered as open tags in `verify_end`,
causing codes like this to not compile:
```rust
html! {
<div>
<div/> // <- considered as open tag
</div>
}
```
```
error: this open tag has no corresponding close tag
--> src/lib.rs:264:17
|
... | <div>
| ^^^^^
```
#### Solution
Add a new `Peek`-able `HtmlSelfClosingTag`, used in `verify_end`.
However, this fix isn't ideal because it peeks the buffer twice for
non self-closing tags. I did it that way in order to keep the peek
thing. An alternative would be to turn HtmlSelfClosingTag::peek into a
function returning (ident, is_self_closing).
#### Notes
I added a TODO for when proc-macro::Diagnostic gets stabilized, in
order to replace the clunky `eprintln!` with proper diagnostics. I
didn't try to return a Result to get a nice error right now because
this error should be fairly rare so we can just wait IMO.
Fixes: #522