fix: Fix cursor.isAtLastLine and cursor.isAtFirstLine calculations to respect line breaks
fix: Fix cursor.isAtLastLine and cursor.isAtFirstLine calculations to respect line breaks

This fixes some issue with range.getClientBoundingRect() that doesn't respect newlines at the start and at the end of a block.
By inserting a temporary element, we get the exact position of current range.

```
<br>
<br>
<!-- The cursor offset basically starts here instead of two lines above with range.getClientBoundingRect() -->
<p>| Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Curabitur vitae lobortis ante. Vivamus metus magna<p>
```

upfrontIO/editable.js