libnm-core: port test-crypto to g_assert* macros

And in particular, add some g_assert_error() checks
libnm-core, libnm-util: move test cert files to libnm-core/

Move the certificate files used by the libnm-util and libnm-core tests
from libnm-util/tests/certs/ to libnm-core/tests/certs/.
libnm-core: tweak crypto.c APIs

Update crypto_verify_private_key() and
crypto_verify_private_key_data() to indicate whether the key was
encrypted or not.

Rename crypto_decrypt_private_key() and
crypto_decrypt_private_key_data() to
crypto_decrypt_openssl_private_key*, since that's the only private key
format they deal with, and the old names made them sound more generic
than they were. Also, update the openssl private key parsing code to
recognize unencrypted private keys as well. (Previously we accepted
unencrypted PKCS#8 keys, but not unencrypted openssl-style keys.)
libnm-core: add nm_utils_file_is_certificate() and _file_is_private_key()

Add nm-utils methods to check if a file is a certificate or private
key file.

nm-applet currently has its own internal versions of these, but they
ended up having to duplicate a bunch of logic that we already have in
crypto.c.
libnm-core: merge branch 'cert-apis-bgo719768'

Misc updates to libnm-core certificate handling. (Prologue to nmtui
vpn editing work.)

https://bugzilla.gnome.org/show_bug.cgi?id=719768
tui: rename two classes

Rename NmtPageDevice to NmtEditorPageDevice, and rename NmtPageGrid to
NmtEditorGrid.

Now all types with names starting with "NmtPage" are instantiable page
types, not abstract classes or low-level widgets.
tui: merge NmtPageMain into NmtEditor

All page types except NmtPageMain are displayed as collapsible
sections. NmtPageMain behaved quite differently from everything else.
So merge it into its container, NmtEditor.
tui: rework how editor pages work

Instead of having NmtEditorPage be a widget itself, have it just be an
object that returns a list of NmtEditorSections, where
NmtEditorSection is a subclass of NmtNewtSection.

(This will be important when adding VPN pages, which will be split up
into multiple sections, but with the different sections needing to
cooperate on updating the NMSettingVpn. This reorganization lets us
have an NMPageVpn containing multiple sections, with the NMPageVpn
object handling the coordination between the sections.)
tui: simplify DSL page handling

Rather than having NmtEditor need to know that DSL requires a DSL
page, and Ethernet page, and a PPP page, just have the DSL page itself
return multiple sections.
tui: tweak NmtEditorGrid column rules

If an NmtEditorGrid row has a widget, but no label, then we make the
widget span both the label and widget columns. But previously we
weren't doing the same for rows with labels but no widgets. (In fact,
we didn't even allow rows with no widgets; label-only rows had to
specify dummy widgets.)

Fix it so that labels will span into an empty widget column. (This
ensures that a long section name won't force the entire grid to have
an overwide label column).

Also, in both the "no label" and "no widget" cases, still show the
"extra" column if it's present.
tui: merge branch 'tui-sections-bgo719768'

Various code reorganizations inside nmtui; should have no
externally-visible effect.

https://bugzilla.gnome.org/show_bug.cgi?id=719768
nmtui: Add a not reached assert to make compiler happy

nmt-editor.c: In function ‘nmt_editor_constructed’:
nmt-editor.c:365:2: error: ‘page’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  add_sections_for_page (editor, grid, page);
  ^