elm: forbid mutating actions when `canwrite` is false
fetch the "canwrite" value
model: have a "canwrite" attribute
templates: avoid the browser quirks mode
plan: show the input
plan: provide a widget to select the number of hours
plan: indicate what it is about.
view: put domain at the top
add a "plan" tab to show the next 1 hour schedule plan
getiofilehint: transform into a POST

GET chokes when the payload is too big.
elm/tasks: add an action to force load all the tasks at once

This is useful to use in conjunction with the filters.
main/init: use a record for ease of reading
repair the lazy loading

The repair is a bit clumsy bet let's see how far that gets us.

We mostly fix the height attribute of the main div, which *must* be
fixed in absolute terms. We have to ask the viewport size to get that.

The trigger is slightly adjusted.
use the new `unprepare` rework api call

And align a bit the naming.
build/ci: do a linter check
cleanups after a linter pass
test/schedulers: adjust for rework change

Now, tasks with a formal input scheduled without one
will have an empty dict set for them.
templates/base: make sure we are not running in quirks mode
build: a basic CI system
pkg: croniter is now known as python-icron