Don't append options into git command string
Manually create Error instance if process exited with error

To keep compatibility with child_process.exec(), which did create an
exception when the process exited with error code, we'll do this as well.