[Form] Allow to follow a deep empty path

I believe the "error.required" should mot be raised in `pickInPM` even on an empty path.
This allow : 

    (__ \ "first" \ "second").read[Option[String]]
Not to fail and return None.

This PR is not ready to merge because the comportment in certain case is not coherent between Json/Form/Xml. The main example is that after the change

     From[UrlFormEncoded] { __ => (__ \ "x").read[Map[String, Int]] }

called on an empty `UrlFormEncoded` will return an empty `Map`, when a similar test for the Json part will fail.  
I believe returning an empty `Map` should be prefered but wanted your opinion before making more changes.