Started exception branch to handle errors by throwing std::system_error

- Added cxx_system_error.hxx based on Paul Preney's code
- Modified header files to use system_error
- Updated test code.
Updated LICENCE.
Clarified licence in README.
Added system_error header.
Fixed formatting.
Removed coupling between fd and pipe.
Added signal set, added exceptions.
Reformatted whitespace to use tabs and spaces.