Fix the Dropbox and S3 drivers to not download the folders.

Onitu doesn't know what a folder is. But the drivers are notifying
us about the remote folders. So Onitu downloads them as regular files,
and when we then try to download files in it, it fails because they
are regular files, not folders. As Onitu builds folders on the fly,
we have to ignore folder notifications in order to build them correctly.

Dropbox was easy: file metadatas contain a 'is_dir' boolean acknowledging
if the file is a folder.
Things are harder on S3, since it doesn't know what a folder is either.
It's just an empty file (or nothing) for it. So we check for each empty
file if there are other files which name begins the same, meaning the
first contains the others.

- Fixed a big bug in S3 which, if the driver root was ended by a '/',
  substituted filenames by the root in get_chunk handler.

- Added one-shot transfer handler upload_file in S3 driver

- Changed old copy/paste errors in Dropbox driver (about S3 driver)

- Add the cursor saving in the Dropbox driver. This way, the driver starts
  polling changes from the last cursor it saved, instead of starting from
  nothing on its first check.

- Add a fix for Python 2/3 compat in Dropbox get_access_token.py.
  However, the OAuth registration part of the Dropbox API isn't
  Python 3-ready. So for now the only way to run this script is to use
  Python 2.

- Add the plug.handler() decorator on Hubic driver's upload_file (otherwise
  it would never have been called)

- Fix interoperability issues about Onitu database when switching from Python2
  to Python3.

- Add dropbox package in requirements.txt, as Dropbox driver has been merged