An ECMA 404 conforming JSON parser.
See: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
t :: nil | true | false | list | float | integer | String.t | map
parse(iodata, Keyword.t) :: {:ok, t} | {:error, :invalid} | {:error, {:invalid, String.t}}
parse!(iodata, Keyword.t) :: t