refine current date/time hotkey handling

Previously, a date or time hotkey lead to always the current date+time
value being set at the current cell, just formatted differently to
either date or time. This not only looked strange in the input line that
still displayed the full date+time value, but also affected day and time
calculations involving these values.

With this change the result depends on the previous value and formatting
of the cell. Furthermore, inserting a current date or time value at the
cursor position while editing a cell is now possible.

If cell is in input or edit mode, insert date/time at cursor position,
else create a date or time or date+time cell as follows:

* key date on time cell  =>  current date + time of cell  =>  date+time formatted cell
  * unless time cell was empty or 00:00 time  =>  current date  =>  date formatted cell
* key date on date+time cell  =>  current date + 00:00 time  =>  date+time formatted cell
  * unless date was current date  =>  current date  =>  date formatted cell
* key date on other cell  =>  current date  =>  date formatted cell
* key time on date cell  =>  date of cell + current time  =>  date+time formatted cell
  * unless date cell was empty  =>  current time  =>  time formatted cell
* key time on date+time cell  =>  current time  =>  time formatted cell
  * unless cell was empty  =>  current date+time  =>  date+time formatted cell
* key time on other cell  =>  current time  =>  time formatted cell

This is a backport of a series of commits on master, i.e. mainly
32e8c47df81292c71ce1d885762358f18559bdb7
0f4a999e02aff56043506e38dfa53ea3b349ce25
and others.

Change-Id: Ief48b3e312345ad5e289921ff5120dd074661882
Reviewed-on: https://gerrit.libreoffice.org/11108
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>