Changes from https://github.com/eflauzo/ProtocolBuffers-Dart/

Signed-off-by: Daniel Thomas <drt24@cam.ac.uk>
Add as JSON back as removing it was a mistake

Signed-off-by: Daniel Thomas <drt24@cam.ac.uk>