Template: add map in index with starting points

this diff is a mess. The editor has it's ideas about how code
should be formatted, which are different than mine.
Add `jstr` template filter

`jstr` convert the input value to json and mark it as safe markup
Add `starting_point` to `Entry`

`starting_point` is the first point of the first track of the gpx file
Rebuild cached entries if template is newer
Config: fix and update ignore support

- ignore as a set
- support `.gitignore` and `.pytrekignore` files
- fix loading ad config load
- add suppor for ignore files in source dirs
Fix entry html rebuild logic

Entry html must be rebuild every time one of its 'source' change,
gpx file and images.
Update docs
Templates: add meta, opengraph, twitter
rework pakcage meta info
Add 'baseurl' config
Template: add 'pytrek' global and 'now' var
Add doc about themes
Fix templates, log messages
Update readme

add `config.dist.yml` example config file
config: search .env in parents, load .gitignore

Look for `.env` and `.gitignore` files from current folder up
main() return exit status

Move things in files, cache to files in build folder, don't rewrite
unchanged files
Make: explicit call python -m

this will run mypy and black with correct pythonpath in venv
Dotenv and vars support in config

In config text, `${NAME}` occurences are replaced by value of NAME var
in environment.
If a `.env` file is found, is loaded before replacing values