Don't segfault if transport doesn't support push.

For instance, the local transport currently doesn't support push. An attempt to push to such a remote results in a segfault. If the push method is not supported, we return an error code and set an more informative error message now. Note that I was not sure about the proper error code. I chose GITERR_NET, because this is transport related. A suggestion for a more appropriate error code is welcome of course.