Make Meterpreter Session Address Resolution Sane

If MSF can not match the visible IP address of a Meterpreter session
to an interface--it will attempt to find an IP address associated
with a default route and use it as the session's address.

This commit fixes the logic associated with this process. The old
logic only considers one IP address per Interface, even though an
Interface may have multiple addresses/masks associated with it.

This flaw led to situations where MSF would favor an IPv6 link-local
address over the IPv4 address associated with the default route,
solely because the IPv4 address was not the first value in the
addresses array.

[FixRM #7259]
Refactor load_session_info

All of this code is in sore need of some specs but I think this change
makes it a bit easier to understand what it is supposed to be doing.
Merge pull request #1 from jlee-r7/land-2897-meterpreter-interfaces

Refactor load_session_info
Add Simple E-Document Arbitrary File Upload module
Clarify why contributors are listed as authors

Also adding @mcantoni to the list of authors. Sorry we missed you!

Dear contributors,

Even though we weren't able to use your code, we absolutely appreciate
that you wrote it. That's why we're listing you as authors. Thanks!!!

https://dev.metasploit.com/redmine/issues/6034
https://dev.metasploit.com/redmine/issues/5217
https://dev.metasploit.com/redmine/issues/6864
Clean exploit code
Land #2913, @bcoles Exploit for Simple E-Document
Add Matteo's email
Merge remote-tracking branch 'origin/pr/3' into feature/pjl
Land #2920, @wvu-r7's author metadata update for printer aux modules
Land #2897 Sane address resolution [FixRM #7259]
Merge remote-tracking branch 'rapid7/master'
Merge branch 'master' into http-proxy