Split CoFH stuff up into separate submodules and using the corresponding sub-APIs' IDs to allow the drivers to work when the API is available only in part. Closes #24.