Fixes regression when handling QStrings

With PyQt4, the element.attribute('type') can return a QString object,
which does not provide the Python `lower` method. This patch casts to a
Python string object in order deal with the PySide vs PyQt4
inconsistency.
Don't wait for the download to finish.

This patch fixes a problem, that the finish signal is never emited,
until the data has actually being read. Since we're reading all at once,
we don't need to wait for the finish signal.
Allow set_field_value to recognize that an input element with no type defaults to the text type
Ability to descend frame and jump back to root frame
Changed function names to be more pythonic
Merge pull request #122 from romanofski/master

Regression fix and fix for download timeouts