Rename core directory because of autoconf name clash

While doing the checks configure might generate "core" files and will
then try to remove them. Having a "core" directory generates an error
while runing the configure script.

There's no workaround but to rename the core directory.
Compile and install tox core as a shared library

Right now only Messenger.h and network.h are installed as public
headers, I am not sure what the public API is but so far the toxic and
nTox clients seem to use onle these two.

This surely needs to be reviewed in the future. Also, CLIENT_ID_SIZE
define and the extern uint8_t self_public_key variable should probably
go to some common header.
Integrated unit tests into the build system

Availability of "check" library will be automatically tested by
configure, if the library is not available tests will not be build.

Further, an option to manually disable/enable compiling of unit tests is
provided: --enable-tests / --disable-tests

To compile and run the tests use:

make check
Integrated new files into the build system
Fixed missing include headers
Add DHT.h include to Messenger.h

CLIENT_ID is defined in DHT.h, this define is used in Messenger.h

Because of these includes updated the pkg-config file to pass the tox
header dir along in -I. Library users should not use tox directory in
includes anymore.