Step to reproduce:
```
xx := Window {
TouchArea {
clicked => {
if (true) {}
// note: because there is no else, the semantic colouring is bailing out now
}
}
TouchArea { clicked => {} }
}
```
This is caused by a bug in rowan::SyntaxToken::next_token that doesn't visit
the next token if it has an empty node
Unfortunately, the LSP has no tests, so I couldn't add one easily
Move "internal" crates into the `internal` directory. This first batch
includes most of sixtyfps_runtime but leaves the rendering backends
alone for now.
pre-commit applied some cleanups to the moved files:
- Consistent newline at end of file policy
- trimming trailing whitespace
- Formatting Cargo.toml files.