MmsCommunication refactor

Introduce MmsConnection class to handle incoming and outgoing network transactions, behaving as a simple abstraction layer over URLConnection objects.

Also another small change for general safety: in retry logic, check protocol before following links and prohibit https->http redirects.

Cuts down on redundant code and reduces a bit of confusion, keeping a majority of the static MMS-related methods to fewer classes.
Why is this here? If the server tells us to switch to http, it seems like that's what we should do.