Fix combobox bugs

- size and position is recalculated for each
  update so that it works even if input
  isn't rendered when combobox is called
- adds caret differently, for same reason as above
- adds combobox to body to prevent scrolling issues