Port puppetca api to modules/

Again, seems ok:

```
<create autosign>
127.0.0.1 - - [04/Apr/2014 12:22:28] "POST /puppet/ca/autosign/wheezy793.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 - 0.0007
sapphire.elysium.emeraldreverie.org - - [04/Apr/2014:12:22:28 BST] "POST /puppet/ca/autosign/wheezy793.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 0
- -> /puppet/ca/autosign/wheezy793.sapphire.elysium.emeraldreverie.org

<remove autosign>
127.0.0.1 - - [04/Apr/2014 12:23:44] "DELETE /puppet/ca/autosign/wheezy793.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 - 0.0008
sapphire.elysium.emeraldreverie.org - - [04/Apr/2014:12:23:44 BST] "DELETE /puppet/ca/autosign/wheezy793.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 0
- -> /puppet/ca/autosign/wheezy793.sapphire.elysium.emeraldreverie.org

<list>
127.0.0.1 - - [04/Apr/2014 12:27:44] "GET /puppet/ca HTTP/1.1" 200 15566 1.6401
sapphire.elysium.emeraldreverie.org - - [04/Apr/2014:12:27:42 BST] "GET /puppet/ca HTTP/1.1" 200 15566
- -> /puppet/ca

<sign>
127.0.0.1 - - [04/Apr/2014 12:28:29] "POST /puppet/ca/testhg79.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 - 1.6934
sapphire.elysium.emeraldreverie.org - - [04/Apr/2014:12:28:27 BST] "POST /puppet/ca/testhg79.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 0
- -> /puppet/ca/testhg79.sapphire.elysium.emeraldreverie.org

<revoke>
127.0.0.1 - - [04/Apr/2014 12:28:15] "DELETE /puppet/ca/test10.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 - 1.7051
sapphire.elysium.emeraldreverie.org - - [04/Apr/2014:12:28:13 BST] "DELETE /puppet/ca/test10.sapphire.elysium.emeraldreverie.org HTTP/1.1" 200 0
- -> /puppet/ca/test10.sapphire.elysium.emeraldreverie.org
```