Add ACP module and interface

This depends on PR #3 being merged first.

Note: If the acp module looks like a lot, it's not really, it's just that I commented every line :wink: 
Wait, I know why we did this! because ACP modules do not use services (yet).