Now that keyfile is built in, we may have symbol naming conflicts
with the other plugins where code was copied & pasted around. Fix
that by namespacing common function names in the keyfile plugin.
Thanks to Giovanni Campagna for pinpointing the issue.
Keep compat with old format if the SSID includes unprintable
characters. But having to type an int list for an SSID is just silly
and it's about damn time we fix that.
The IO library was in io/ because I was too lazy to find autotools'
SUBDIRS rules at the time and that you could use '.' for the current
directory. Fix that and use its own error defines instead of
the system settings service. Clean up a for more things for good
measure too (like KEYFILE_DIR, etc).
This should help people debug issues with keyfile not recognizing
files since it'll actually print out something when it fails to
parse stuff. Also logs changes, new connections, and deletions.
Fix a few problems... No plugin should return secrets in the GetSettings method,
which some plugins did. When that was committed in the commit "system-settings:
don't return secrets in the settings", it broke those plugins that didn't implement
GetSecrets. Each plugin can actually use the same code for GetSettings and
GetSecrets, so implement those generically in the NMExportedConnection class and
remove plugin-specific implementations that all did the same thing.
Clean up handling of "special" keys in keyfiles, ie ones that
need more processing than the basic GKeyFile API supports. Add
MAC address reading (writing support to come).
Additionally, add some test bits for the keyfile plugin that get
run on 'make check'.