more sophisticated formatables

- formatables are real objects
- higher extensibility
- only one formatting supported per property

[ci skip]
generalize rendering endpoints

As long as OpenProject supports "plain" formatting we need to support it
in the API too

[ci skip]