service: Don't save or load reason for failure

Loading the 'Failure' attribute and attempting to set the service state
to failure has been applied only to non-favorite services. As non-favorite
services are never autoconnected anyway, there is no change in
functionality by removing the state setting.

Also enforcing IPv4 and IPv6 state is wrong, as the respective ipconfig
states do not match after that. And when saving the 'Failure' state, the
combined service->state should have been checked in the first place.

With this change, the helper function string2error() is not used anymore
and can be removed.
service: When connecting, ignore previous invalid key errors

An invalid key error is indicated from the respective plugin by calling
__connman_service_indicate_error() from network.c. That function removes
the passphrase used and is detected a few lines earlier before this
change.
wifi: Enforce peer disconnection properly

The dedicated wifi interface is not properly reset. So even if the
disconnection went fine, it might still stay on a connecting state in
the wifi plugin only.
gsupplicant: Fix a typo in WPS method configuration

It's push_button, not puth_button...

Reported-by: Jussi Kukkonen <jku@goto.fi>