Added extractor for optional JSON values

For example,
> val json = """ { "foo": "bar" } """

> Json.parse(json).foo.get[Option[String]]
res: Some(bar)

> Json.parse(json).baz.get[Option[String]]
res: None