Refactor entity caps storage

- Use json as storage format
- Add JsonEncoder and Decoder for DiscoInfo objects
- Add support for storing dataforms
3 jobs for master in 2 minutes and 50 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Test
passed #12026
run-appdata

00:00:06

failed #12025
run-tests

00:02:43

 
  Build
skipped #12027
run-build
 
Name Stage Failure
failed
run-tests Test
TypeError: 'Mock' object is not iterable

----------------------------------------------------------------------
Ran 20 tests in 0.009s

FAILED (errors=5)
Test failed: <unittest.runner.TextTestResult run=20 errors=5 failures=0>
error: Test failed: <unittest.runner.TextTestResult run=20 errors=5 failures=0>
ERROR: Job failed: exit status 1