shell, NM model: Allow removal of setting elements

Delete setting elements that we handle explicitly.  Previously, the
old value would have stayed, but we only really want that to happen to
unhandled elements.

Reviewed-by: Stef Walter <stefw@redhat.com>
shell, NM model: Reset settings when applying fails.

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Include "routes" in ghost network connections

They are required now.

Reviewed-by: Stef Walter <stefw@redhat.com>
shell: Don't assume that all network slaves are ethernet devices.

Previously, we would delete all connection settings of a interface and
creating a new "ethernet" one when turning it into a slave.  Also,
freeing a slave was done by just deleting the slave connection
setting.

Now we are careful to modify the existing connection settings.

Fixes #1110
Closes #1167
Reviewed-by: Stef Walter <stefw@redhat.com>