Delete remote objects after tests.

My ad account is getting cluttered with integration test junk. There are
two problems leading to this:

 1. The remote test objects aren't consistently deleted at the end of
    tests.

 2. Some of the deletions are handled at the end of the test, rather than
    in tearDown, so they don't happen if the test fails.

This commit solves problem by keeping a list of `self.remote_objects` which
is deleted automatically in `FacebookAdsTestCase.tearDown`.  (It should
probably be `AbstractCrudObjectTestCase.tearDown` but that's an orthoganol
issue for a separate commit. The `new_test_ad_*` methods are on
`FacebookAdsTestCase` and they call `remote_create` so that's the class
where automatic deletion needs to be handled as well, for now.)

Additionally this commit cleans up the calling of `set_default_read_fields`
so that it's always restored in `tearDown` at the end of each test, to
prevent cross-test pollution.
AdImage.remote_delete
Fix bugs in fields handling, and make it consistent.

The existing handling of fields is inconsistent in the three places it
appears: `EdgeIterator`, `AbstractCrudObject.get_by_ids` and
`AbstractCrudObject.remote_read`. The result varies between a string,
a list, None, or omitted from params.

This commit ensures that:

  1. In all cases, `params['fields']` will contain either a non-empty
     string, or will be omitted entirely.

  2. If fields is passed to a function, even an empty list, it will be
     respected rather than falling back to `get_default_read_fields`. This
     is accomplished by testing for `is None` rather than just a falsy
     value.

Additionally this uses a more common Python idiom for duplicating a dict,
using `dict(orig)` rather than `orig.copy()`.
Merge branch 'tox' into all
Merge branch 'travis' into all
Merge branch 'coveralls' into all
Merge branch 'fields' into all
Merge branch 'clean-tests' into all
Merge branch 'adimage-delete' into all
Merge branch 'agriffis' into all