Fix SIP options scanning

There were many problems with these modules which I have addressed:

* Multiple Allow headers are possible, perhaps even common, and these were only getting the first
* In the event that the Proxy-Require header was present, it overwrote any previous *Server* value and then didn't even report on Proxy-Require
* Services/notes was inconsistent and incorrect between the two
* Was only reporting the User-Agent.  Server is similarly important.
* Was sending invalid UDP requests (missing the trailing \r\n.  Some respond without this, some don't)
* Was sending an odd Accept header which most SIP things won't like
* Was assuming pretty much any response with whitespace in it to be a valid SIP resonse
* Duplicated code between the two and duplicated code that is already in the mixins
* Style

Validation.  I have 6 hosts:

* ekiga (UDP only), ser (TCP and UDP), twinkle (TCP and UDP) and sflphone (UDP only), all running the respective SIP software available for Linux
* ccproxy-not-sip, a host running CCproxy with the NNTP proxy listening on 5060/TCP (which is what started all of this...)
* unknown-sip: some SIP host of some sort.  I think it is a Polycom but cannot confirm

Before, non-verbose, UDP SIP OPTIONS scanning.  Notice that:

* ekiga's User-Agent is not discovered
* twinkle and the unknown SIP device are not discovered at all
* No notes are stored for anything

```
esource (/tmp/sip.rc)> use auxiliary/scanner/sip/options
resource (/tmp/sip.rc)> run
[*] ekiga 400 
[*] ser 404 server='Sip EXpress router (2.0.0 (x86_64/linux))' 
[*] sflphone 200 verbs='PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, REGISTER, OPTIONS, MESSAGE' 
[*] Scanned 6 of 6 hosts (100% complete)
[*] Auxiliary module execution completed
resource (/tmp/sip.rc)> notes
resource (/tmp/sip.rc)> services

Services
========

host         port  proto  name  state  info
----         ----  -----  ----  -----  ----
ser   5060  udp    sip   open   
sflphone   5060  udp    sip   open   
ekiga  5060  udp    sip   open   
```

Before, non-verbose, TCP SIP OPTIONS scanning.  Notice that:

* The device that isn't SIP is being detected as SIP.
* The unknown SIP device does't get the Server header or any of the other 6 verbs
* No notes

```
resource (/tmp/sip.rc)> use auxiliary/scanner/sip/options_tcp
resource (/tmp/sip.rc)> run
[*] Scanned 1 of 6 hosts (016% complete)
[*] ser SIP/2.0 server='Sip EXpress router (2.0.0 (x86_64/linux))' 
[*] Scanned 2 of 6 hosts (033% complete)
[*] twinkle SIP/2.0 server='Twinkle/1.4.2' 
[*] Scanned 3 of 6 hosts (050% complete)
[*] Scanned 4 of 6 hosts (066% complete)
[*] ccproxy-not-sip 200 
[*] Scanned 5 of 6 hosts (083% complete)
[*] unknown-sip SIP/2.0 verbs='INVITE' 
[*] Scanned 6 of 6 hosts (100% complete)
[*] Auxiliary module execution completed
resource (/tmp/sip.rc)> notes
resource (/tmp/sip.rc)> services

Services
========

host         port  proto  name  state  info
----         ----  -----  ----  -----  ----
unknown-sip   5060  tcp    sip   open   
ser   5060  tcp    sip   open   
twinkle   5060  tcp    sip   open   
ccproxy-not-sip  5060  tcp    sip   open   
```


Prior to this PR the output for verbose and non-verbose were identical.

After, non-verbose:

```
resource (/tmp/sip.rc)> use auxiliary/scanner/sip/options
resource (/tmp/sip.rc)> run
[*] Sending SIP UDP OPTIONS requests to ekiga->unknown-sip (6 hosts)
[*] ekiga:5060/udp SIP/2.0 200 OK: {"User-Agent"=>["Ekiga/3.3.2"]}
[*] ser:5060/udp SIP/2.0 404 Not Found: {"Server"=>["Sip EXpress router (2.0.0 (x86_64/linux))"]}
[*] twinkle:5060/udp SIP/2.0 404 Not Found: {"Server"=>["Twinkle/1.4.2"]}
[*] sflphone:5060/udp SIP/2.0 200 OK: {"Allow"=>["PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, REGISTER, OPTIONS, MESSAGE"]}
[*] Scanned 6 of 6 hosts (100% complete)
[*] Auxiliary module execution completed
resource (/tmp/sip.rc)> notes
[*] Time: 2014-07-25 20:05:30 UTC Note: host=ekiga service=sip port=5060 protocol=udp type=sip_User-Agent data=["Ekiga/3.3.2"]
[*] Time: 2014-07-25 20:05:30 UTC Note: host=ser service=sip port=5060 protocol=udp type=sip_Server data=["Sip EXpress router (2.0.0 (x86_64/linux))"]
[*] Time: 2014-07-25 20:05:30 UTC Note: host=twinkle service=sip port=5060 protocol=udp type=sip_Server data=["Twinkle/1.4.2"]
[*] Time: 2014-07-25 20:05:30 UTC Note: host=sflphone service=sip port=5060 protocol=udp type=sip_Allow data=["PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, REGISTER, OPTIONS, MESSAGE"]
resource (/tmp/sip.rc)> services

Services
========

host         port  proto  name  state  info
----         ----  -----  ----  -----  ----
ser   5060  udp    sip   open   
twinkle   5060  udp    sip   open   
sflphone   5060  udp    sip   open   
ekiga  5060  udp    sip   open   


resource (/tmp/sip.rc)> use auxiliary/scanner/sip/options_tcp
resource (/tmp/sip.rc)> run
[*] Scanned 1 of 6 hosts (016% complete)
[*] ser:5060/tcp SIP/2.0 404 Not Found: {"Server"=>["Sip EXpress router (2.0.0 (x86_64/linux))"]}
[*] Scanned 2 of 6 hosts (033% complete)
[*] twinkle:5060/tcp SIP/2.0 404 Not Found: {"Server"=>["Twinkle/1.4.2"]}
[*] Scanned 3 of 6 hosts (050% complete)
[*] Scanned 4 of 6 hosts (066% complete)
[*] Scanned 5 of 6 hosts (083% complete)
[*] unknown-sip:5060/tcp SIP/2.0 200 OK: {"Server"=>["RTCC/3.5.0.0"], "Allow"=>["INVITE", "BYE", "CANCEL", "OPTIONS", "ACK", "INFO", "NOTIFY"]}
[*] Scanned 6 of 6 hosts (100% complete)
[*] Auxiliary module execution completed
resource (/tmp/sip.rc)> notes
[*] Time: 2014-07-25 20:05:45 UTC Note: host=ser service=sip port=5060 protocol=tcp type=sip_Server data=["Sip EXpress router (2.0.0 (x86_64/linux))"]
[*] Time: 2014-07-25 20:05:45 UTC Note: host=twinkle service=sip port=5060 protocol=tcp type=sip_Server data=["Twinkle/1.4.2"]
[*] Time: 2014-07-25 20:05:45 UTC Note: host=unknown-sip service=sip port=5060 protocol=tcp type=sip_Server data=["RTCC/3.5.0.0"]
[*] Time: 2014-07-25 20:05:45 UTC Note: host=unknown-sip service=sip port=5060 protocol=tcp type=sip_Allow data=["INVITE", "BYE", "CANCEL", "OPTIONS", "ACK", "INFO", "NOTIFY"]
resource (/tmp/sip.rc)> services

Services
========

host        port  proto  name  state  info
----        ----  -----  ----  -----  ----
unknown-sip  5060  tcp    sip   open   
ser  5060  tcp    sip   open   
twinkle  5060  tcp    sip   open   

resource (/tmp/sip.rc)> setg VERBOSE true
VERBOSE => true
resource (/tmp/sip.rc)> use auxiliary/scanner/sip/options
resource (/tmp/sip.rc)> run
[*] Sending SIP UDP OPTIONS requests to ekiga->unknown-sip (6 hosts)
[*] ekiga:5060/udp SIP/2.0 200 OK: {"User-Agent"=>["Ekiga/3.3.2"]}
[*] ser:5060/udp SIP/2.0 404 Not Found: {"Server"=>["Sip EXpress router (2.0.0 (x86_64/linux))"]}
[*] sflphone:5060/udp SIP/2.0 200 OK: {"Allow"=>["PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, REGISTER, OPTIONS, MESSAGE"]}
[*] twinkle:5060/udp SIP/2.0 404 Not Found: {"Server"=>["Twinkle/1.4.2"]}
[*] Scanned 6 of 6 hosts (100% complete)
[*] Auxiliary module execution completed
resource (/tmp/sip.rc)> use auxiliary/scanner/sip/options_tcp
resource (/tmp/sip.rc)> run
[*] Scanned 1 of 6 hosts (016% complete)
[*] ser:5060/tcp SIP/2.0 404 Not Found: {"Server"=>["Sip EXpress router (2.0.0 (x86_64/linux))"]}
[*] Scanned 2 of 6 hosts (033% complete)
[*] twinkle:5060/tcp SIP/2.0 404 Not Found: {"Server"=>["Twinkle/1.4.2"]}
[*] Scanned 3 of 6 hosts (050% complete)
[*] Scanned 4 of 6 hosts (066% complete)
[-] ccproxy-not-sip:5060/tcp is not SIP: An invalid argument was specified. Invalid SIP status line: 200 CCProxy NNTP Service
[*] Scanned 5 of 6 hosts (083% complete)
[*] unknown-sip:5060/tcp SIP/2.0 200 OK: {"Server"=>["RTCC/3.5.0.0"], "Allow"=>["INVITE", "BYE", "CANCEL", "OPTIONS", "ACK", "INFO", "NOTIFY"]}
[*] Scanned 6 of 6 hosts (100% complete)
```

Much better!

Note that I did not re-do this after 3ba424e which corrects the SIP header storage to align with recog.

I *believe* that the enumerator* modules have similar problems but I can't fix those now, and it is also possible that the probes that are resulting in 404s could be changed to elicit more information.