Require Twisted >= 8.2.

This is already required since [a1e1382d]
[2013-09-13T22:45:08Z!h.goebel@crazy-compilers.com], but I missed updating
the requirement then. According to
http://twistedmatrix.com/trac/browser/tags/releases/twisted-11.0.0/NEWS
single byte range is supported since Twisted 8.2.0. And that version of
Coherence only supported a single byte range.
Fix and cleanup utils.downloadPage().

Since HeaderAwareHTTPDownloader == client.HTTPDownloader, there is no
need for using the first instead of the second. So this function can
be reduced to set the user agent and simply call the later one.

This also fixes a NameError: global name 'factory' is not defined.
Add comment: utils.HeaderAwareHTTPDownloader is depricated.

It was only used by utils.downloadPage, so there is no need for it
anyway.
Merge branch 'maintain/0.6.x' into develop
Remove deprecated class utils.HeaderAwareHTTPDownloader.
Cleanup long spaghetti code in upnp.core.device.
Cleanup: Device instances always have dlna_device_classes and dlna_caps.

Prior to this they got set using ugly code in parse_device(). (That ugly
code will be cleaned up in the next commit.)
Cleanup ugly code.

The last commit made Device instances always have dlna_device_classes
and dlna_caps. So we can now remove the ugly code required for the case
they did not exist yet.
Cleanup: Do not use hard-coded namespace but global variable.

This is like it is done every where else in this module.
Cleanup long spaghetti code in upnp.core.service.
Cleanup code and wrap some long lines in upnp.core.action.

Now it it much easier to read and understand. I did not wrap all long
lines now since I expect more cleanup to be done here anyway.