Use a struct with optional parameters for the key construction funcs

The functions to create keys had too many arguments which was making
them difficult to use. Instead there is now only one ntb_key_new
function which takes a struct for the arguments. The struct has a
flags parameter to specify which arguments are given so that the
unspecified ones can revert to default values. The functions in
ntb_cryto and ntb_keyring that construct keys have also been changed
to use this struct and pass it down to ntb_key.
Add an option to ntb-keygen to specify the POW difficulty

The keygen command in the IPC protocol now contains the two fields to
specify the POW difficulty. These can be specified as a multiple of
the network minimum difficulty using the -d and -D options for
ntb-keygen.
main-context: Use regular poll instead of epoll

Notbit isn't expected to need to handle a large amount of connections
so epoll doesn't really have that much benefit and it hurts
portability.
Query the bootstrap DNS servers for extra peers

The ntb_network now queries the two bootstrap hostnames for extra
default peers when it loads.
store: Move the recursive mkdir utility to a separate file

That way it can also be used to create the directory for the IPC
socket.
ipc: Use regular Unix-domain sockets instead of abstract sockets

Abstract sockets are nice but it's not worth the portability trade
off. Instead it now creates a regular Unix-domain socket. It ensures
the socket is only used by a single process by creating an additional
empty lock file and calling flock on it.
Add a TODO
Relicense to an MIT license

This should make it less worrying to distribute binary copies of
Notbit. It also avoids the problem that OpenSSL is not compatible with
the GPL.
Use getpeereid instead of SOL_PEERCRED if available

SOL_PEERCRED is not available on BSD systems but we can use getpeereid
instead.
Include string.h from ntb-ipc-sockaddr.c

The file is using memcpy and strlen but it wasn't including string.h.
For some reason it wasn't complaining on Linux but it gives a warning
on NetBSD.
store: Explicitly cast struct timeval values to long int for printf

Otherwise we are depending on them being defined as long int anyway in
order to get them to be passed correctly so we might as well just
explicitly cast them.
Don't use _Static_assert if the compiler doesn't support it

This makes it easier to build with older compilers.
Fall back to a socket in /tmp if XDG_RUNTIME_DIR is not set

Some systems don't set XDG_RUNTIME_DIR. In that case it will now
create a directory in /tmp with the user ID of the process and put the
socket in there.
Ignore SIGPIPE
Fix spurious \n in ntb_file_error_set
mkdir: Fix an off-by-one error when searching for slashes

This was found with Valgrind
Add check unit test
Add first test
Change unit test framework to googletest

Testing C code with C++ testing frameworks seems quit common.
Add script for running testcases. Modified README