Moved EncodeJson[Int] to encode as JsonNumber.
Enhancements to DecodeJson so that it can handle re-attempt gracefully.

This fixes a long hated hack of failure recovery in the Option decoder.

And fixes bug raised in markhibberd/argonaut.io#1.