session: Add session argument to create_service_entry_cb

We need to remembrer which session this struct service_entry belongs
to when removing the entries again.
session: Do not access stale entry pointers

When removing the entry we need to clear all references towoards it.
session_policy_local: Do not handle small allocation

Let's remove the small allocations error path because glib will
abort on memory exhausting anyway. Basically we remove dead code.
session_policy_local: Refactor SELinux context parser

g_strplit() will eventually strdup the tokens so no need to
strdup() 'context'. But we an ugly cast (from 'const unsigned char *'
to 'const char *') is needed for g_strsplit() to make the compiler happy.
session_policy_local: Update session before unref policy

The update flag indicates if the policy is still valid after
the unref. That is when a session is using the policy and
the corresponding file is removed. Just update before unref policy.
session_policy_local: Add some more debug infos
session_policy_local: Rework policy file handling

The old assumption was that a config file is associtated
with one session only. With introducing UID/GID support a policy
might be used for several sessions. Furthermore, it was assumed
that the file name is the key/ident to identify a session and
a file containts exactly one policy.

Here are the new rules for writing a policy file.

- A valid file name contains letters or numbers and must have a '.policy'
  suffix.
- The file name has not semantical meaning
- A policy file may contain contain more than 1 policy
- Each policy entry starts with 'policy_'
- Each policy entry shall have one and exactly one valid key (e.g. selinux)

And now some comments on the implementation. We have two main hash
tables, file_hash and session_hash which own 'the file' respectively
the session config. Additionally we have a hash table which connects a
policy with a session (selinux_hash).
session_policy_local: Remove struct create_data

Instead we use struct policy_data from the beginning.
session_policy_local: Retrieve UID/GID from session user

When the session core ask to create a configuration, then we
first ask the D-Bus server which UID/GID the session belongs to.
If possible we also ask for the SELinux context. Then we try
to figure out which file containts the configuration for
SElinux, UID or GID identification.

The order of matching preference is SELinux, UID and finally GID.
session: Add session identification method to config

The session core needs to the know which kind of session
identifaction method has been selected in the plugin in order
to use the rigth iptables rules etc.
session_policy_local: Set session identification method

For SELinux we need to store the complete context for iptables
to work.
session-test: Add tests for session_policy_local

Use the UID as identification.
session_policy_local: Document policy file format
inet: Add functions to setup fwmark to routing table
inet: Add function to setup default route to a routing table
inet: Use table id instead of interface index
netfilter: Add netlink basic infrastructure

Instead of factoring out common parts from rtnl.c we add a
new implementation for handling the upcoming ACCT netfilter netlink
messages.

The main reason is not to disturb the working rtnl code (although
it has several hidden bugs, which are not triggered by the ussage
pattern). The idea is to wait for ELL and then rip out the common
netlink code.
netfilter: Add ACCT functions
nfacct: Add __connman_nfacct_flush()

Add helper function for flushing all nfacct rules.
nfacct: Add helper function for managing several rules