Remove BlockID and replace it by a unique identifier.

- RequestAppListMsg attempted to Json en/decode a Map with non string
  Keys. This did make the GsonDeEncodingTests fail(reasons see below)
  and obviously also everything else.
- As the workaround for MapKeys encoding nonstrings includes
  transmitting them as arrays (see MapAsArrayTypeAdapter) and making the
  whole thing unreadable and ugly the BlockID key is replaced with
  another unique id: The concatenation of the AppId+BlockId
  (actually also some text to make it more readable).
- This commit adds such a "make unique String key" function to BlockDescriptor (and a
  Todo to move it somewhere more sensible).
- Also make everything use the above method instead of BlockID
- Finally delete the now unnecessary BlockID & Adapter.
Adapt & fix tests.

- Fixed the tests to match the changed classes and work again.