This refactors the captive portal detection into a new package, and adds
an additional check that makes a regular HTTP request with an expected
response value. This works on the JetBlue captive portal, where the
/generate_204 endpoint works fine (including the challenge!) but a
regular HTTP request is intercepted and redirected to flyfi[.]com
Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: I04e72f0641507e1b5e0da7e9bf318c7b375b2b6a