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.
It's assuming a risk running unhandled threads, easy bad situation comes to my mind is if the module runs a lot of times with a big timeout. There will be a lot of unhandled threads running until they finish without "anyone" being able to take care of them.

Just pointing because unhandled threads use to make me stop landing things. If this situation is good enough to go that's okey for me! Not sure if there is any guidelines about how to handle/not  handle threads. I would say no so just pointing.