Add AppleTV modules (imge, video and login)

These AppleTV modules were originally made and submitted by @0a2940 in #3613, and went through some changes by thelightcosine and me in #3688.

***To verify the apple_display_image module:***

- [ ] Make sure you have access to an AppleTV device. Find Tod if you need to borrow one.
- [ ] Have an image file ready.
- [ ] Start msfconsole, ```use auxiliary/admin/appletv/appletv_display_image```, set the appropriate options, and ```run```
- [ ] Your image should display on the appletv screen.

Note: if you don't have a valid password, appletv will not react to your request.

***To verify the apple_display_video module:***

- [ ] Make sure you have access to an AppleTV device. Find Tod if you need to borrow one.
- [ ] Set up a web server. The most ideal one is Apache. If you prefer to use something different, please read the description. It explains what works, what doesn't.
- [ ] Start msfconsole, ```use auxiliary/admin/appletv/appletv_display_video```, set the appropriate options, and ```run```
- [ ] Your video should play on the appletv screen

Note: if you don't have a valid password, appletv will not react to your request. If appletv doesn't like your web server, or a bad uri, then there will be an error on the screen.

***To verify the apple_login module:***

- [ ] Make sure you have access to an AppleTV device. Find Tod if you need to borrow one.
- [ ] On your appletv, go to Settings -> AirPlay -> Security. Set a password on either "Onscreen Code", or "passsword" mode.
- [ ] Start msfconsole, ```use auxiliary/scanner/http/appletv_login```, set the appropriate options, and ```run```. If your password list has the right password, it should say the password is found. If you're testing the Onscreen mode, make sure to set the Onscreen datastore option to true.

@todb-r7 Since this module is related to LoginScanner, please make sure to update the scoreboard after this pull request is merged: https://github.com/rapid7/metasploit-framework/wiki/Metasploit-Loginpalooza#scorecard.
Typically to ensure the thread is terminated for a scenario like this, you could wrap around it with a Timeout. But as far as I can tell, the only thing that could cause the method to hang is the #read_response method, and it is already using a Timeout obviously to prevent hanging. So I didn't do it because that would be like having a Timeout in another Timeout. If you know there is another condition that can cause the thread to hang, I can add another Timeout. If you don't know but want to add it anyway, I can add it too - I just feel that's a little weird but it's no big deal. Let me know.