Parse JSON when loading sign text NBT

Fixes #528

Still uses plaintext internally, since we don't have a robust json chat parser yet. TextMessage.asPlaintext() is rather primitive too

Saving also uses plaintext for the sake of simplicity. Vanilla handles that correctly, since it's needed when migrating from 1.7 maps.

To test this:

* Start glowstone, place some signs with text and some empty lines
* Load same world in [vanilla](https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar), save (this turns sign text into json)
* Load same world in glowstone

Old behavior adds quotes around lines with content, and either `null` or `""` for lines without.

New behavior should show no differences.