Rename api to capi

It was confising for api.h to coexist with Api.hh.
Merge RealApi into Api

The following local classes are renamed:

* RealFileDescriptorSet -> FileDescriptorSetImpl
* RealSignalNumberSet -> SignalNumberSetImpl
* RealApi -> ApiImpl
Change Api return values to error_code

The error_code type can contain more "raw" information than the
error_condition type.
Add missing public specifier in Api
Add sesh_osapi_sigprocmask and Api::sigprocmask
Missed initialization in FileDescriptorSetImpl and SignalNumberSetImpl
Always allocate value in SignalNumberSetImpl

A null pointer to struct sesh_osapi_sigset is not treated in the same
way as a pointer to an empty struct sesh_osapi_sigset in the
sesh_osapi_sigprocmask function. For behavioral consistency between
sesh_osapi_sigprocmask and Api::sigprocmask, SignalNumberSetImpl should
be initialized to an empty set in the constructor.
Add sesh_osapi_sigaction and Api::sigaction
Add sesh_osapi_fd_setsize and FileDescriptorSet::maxValue
Respect value domain in FileDescriptorSet

The FileDescriptorSet::set method now throws std::domain_error if the
argument is too large.
Merge pull request #79 from magicant/feature/api

Update OS API wrapper
Make SignalNumberSet::test const
Merge pull request #80 from magicant/feature/api

More OS API wrapper update
Add SignalErrorCode enum class and SignalErrorCategory class
Add UnimplementedApi test helper class
Add FakeSignalNumberSet test helper class
Add FakeSignalMaskApi test helper class
WIP: HandlerConfiguration