core: make RestxMainRouter accessible to AutoStartable components

+ make serverId and server base url available as named strings
core: move temporary classes and tests to `target/restx` by default

 instead of `tmp`, so that it is cleaned up when cleaning the app
spec: review recorder design [BREAKING]

Simplifies the recorder design: don't separate install and record steps anymore:
a recorder is created for each recorded request, so it can use threadlocal machines
 to customize the factory used for the request.

This makes using thread local TAPEs inside the recorder note  needed anymore.

Note: This change is breaking only if you implemented your own recorder.
core: fix: handle properly polymorphic responses and requests body
core: add different path param types samplest

+ fix an issue when using \ in endpoint path
shell: add `hash` command allowing to easily calculate some hashes

 this is especially useful when using file based user repo, to calculate
 the hash to put in the credentials file.
shell: refactor: generator templates are now layed out as they are output, and using their target extensions

this makes it easier to preview what the generated app will look like
templates: move from spullara.mustache to jmustache

which has more templating features, including a way to handle first and last elements of a list differently.
The jar is also half the size of the other one.
core: fix: handle exception when cache loading fail in restx session
security: now principals can have a `*` role which allow to access endpoints whatever role is required
security: introduce new classes to help implement authenticator

it should now be easier to implement an authenticator following good
security practices.

it also provides a very simple file based user repository which can be used
for prototyping / simple cases where users can be managed outside the app.
shell: app new: use new FileUserRepository in generated app.

This makes it usable as is in situations where basic user management is enough,
 requiring less work and making generated code less boilerplate.
fix typos