Reorganize various components

 * p11-kit library and tool in the p11-kit/ subdirectory
 * trust module and new trust tool in trust/ subdirectory
 * No more tools/ subdirectory
 * Lots less in the common/ subdirectory
Fix running trust module tests under distcheck
Fix dependency between p11-kit command and library
trust: Implement validation for creating/modifying objects
path: Add p11_path_prefix() function

Checks if a wellformed path is identical to or a prefix
of another path.
iter: Add iteration mode where session is not busy

In order to use the session we are iterating on for other tasks
such as other C_FindObject() calls, we need to make sure that
it's not in the middle of a find operation. Finish up the
complete find operation in advance of returning objects from
a session.

Make this the default mode. The previous behavior remains
as an option. Add tests.
trust: Implement reloading of token data

 * Reload token data whenever a new session is opened.
 * Only reload files/directories that have changed.
 * Move duplicate anchor/blacklist detection logic into
   the extract code. This is in line with the approach
   being discussed on the mailing lists and spec document.
 * New internal attribute CKA_X_ORIGIN set on all objects
   so we can track where an object came from, and replace
   it when reloaded.

In general this is a prerequisite for modification of objects
reload before modify is necessary to prevent multiple callers
clobbering each other's changes.
trust: Rename p11_index_batch() to p11_index_load()

The name makes it clearer what's going on. This is only used
during loading, so we can track whether a change has resulted
from the trust module or from the file storage.
path: Add p11_path_canon() function

Cleans up a filename with readable characters.
trust: Add support for saving files with unique file names
trust: Don't write out internal attributes when persisting
trust: Correctly handle persisting OIDs with zero length
trust: If token path is a file, don't try loading subdirectories
trust: Initial support for writing out token objects

 * The objects are written out in the p11-kit persist format
 * Parser marks files in p11-kit persist format as modifiable
trust: Add p11_asn1_read() and p11_asn1_free() functions

Some helpers for commonly used ASN.1 related stuff.
trust: Add p11_oid_hash() and various oid strings
trust: Port to use CKA_PUBLIC_KEY_INFO and updated trust store spec

 * Use the concepts and PKCS#11 objects described in the
   recently updated (still work in progress) storing trust spec.
 * Define our own CKA_X_PUBLIC_KEY_INFO define for now, since the
   the CKA_PUBLIC_KEY_INFO isn't defined yet.
 * Most notably, the association between certificates and stapled
   extensions is by public key.
 * Rework some of the tests to take into account the above.
p11-kit: Add P11_KIT_MODULE_TRUSTED flag

A new flag to pass to p11_kit_modules_load() and related functions
which limits loaded modules to ones with "trust-policy: yes".
common: Fix typo, and don't escape '6' in URL encoding
asn1: In p11_asn1_read() allocate an extra null terminator

As a courtesy for callers.