Explicit initialization.

Using the GCC .init section to initialize the library is
limiting.

This change reames xio_constructor to xio_init, and makes
the routine idepotent after the first invocation.  The constructor
annotation is stil present, but consumers of the library may
also use xio_init() explicitly.

Programs may now link statically with libxio, but must call xio_init()
before using other library functionality.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
CMAKE:  install header files.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>