- Least recent was set last in the headers dictionary, thus
overwriting most recent (ascending = false)
- Mapping full profiles directly to array was generating
duplicates, use a dictionary to keep ID unicity
Broken in dec7fb9030
VPN was lost when app was sent to background. Current (and active)
profile was persisted with nil isActive and instead of ignoring
profile activation, isActive was falling back to
allHeaders.isEmpty (false), erroneously deactivating the profile
and disconnecting the VPN.