Pass around browser instance so that we no longer depend on global browser.

This is especially important when using multiple browser concurrently.

Page objects do not apply since they are only functions and have no reference
to the browser instance and thus still us the global browser.
Refactor Form.field_labels to instance property instead of a classmethod.
Refactor Form.find_widget_in_form classmethod into find_widget instance method.
Always wrap label nodes.
Remove classmethod Form.find_field_in_form in favor of instance method get_field.
Eliminate Form.find_form_element_by_label_or_name.

The classmethod Form.find_form_element_by_label_or_name is replaced with
the browser.find_form_by_field method.

The old classmethod also did not wrap the nodes properly, the one one now
always returns wrapped form node elments.
Eliminate Form.find_form_by_labels_or_names.

The classmethod Form.find_form_by_labels_or_names is replaced by the new
browser.find_form_by_fields method.
Cleanup (pep8).
Update changelog.
Add request header methods for managing permanent request headers.

- browser.append_request_header
- browser.replace_request_header
- browser.clear_request_headers
Support passing member objects to browser.login().

The users / members are still expected to hav TEST_USER_PASSWORD as password.
Refactor login to use the new request header methods.
Rename clear_request_headers to clear_request_header.

This clarifies what it does, since it does not remove all headers ever.
It now only supports one header at a time, but that is the default use case.
Move request implementation to library specific methods.
Support choosing requests library, make Zope app setup optional.

When no Zope app is set up, the ``requests`` library is set as default,
otherwise ``mechanize``.
Support form submitting with requests library.
Improve login and header support for requests library requests.
Requests library: add support for file uploads.

This refactors file uploads in general to no longer using
mechanize for creating the multipart request body.
Implement browser.reload method, reloading the current page.
Add tests for core browser functionality, such as contents, cookies etc.