Changed JsonContract to use delegates instead MethodInfo for [de]serializing callbacks

`JsonContract` only supported instance methods of [de]serialized classes for `On[De]serializ[ed|ing]` callbacks. Static methods, lambdas, closures, methods of other types could not be used. I changed `On[De]serializ[ed|ing]Methods` properties of `JsonContract` to `Action`s which accept appropriate callbacks (same with `OnError`). Now custom Contract Resolvers can add any callbacks to any objects.

As `On[De]serializ[ed|ing]Methods` properties aren't in a released version yet, renaming them and changing their types shouldn't be an issue.

Old `On[De]Serializ[ed|ing]` properties of type `MethodInfo` should probably marked with `ObsoleteAttribute`.