Refactor *Port/*ListenAddress handling
Currently we parse *ListenAddress options at the last possible moment, and intertwine them weirdly with *Port addresses. Instead, let's parse them into a data structure at configure time, and then only look at the data structure at bind time. This should make our lives much easier, especially as we add the new options for proposal 171.