Working version of python opal_permission_revoke (still needs some wrapping and refactoring)
Now using a single revoke table with project as one of the columns
Using revoke_table_ref prop instead of revokeTableRef
permission revoke table is now per projects (with a common configurable name), and projects can be configured
Refactor opal_permission_revoke

- refactor
- create docstrings
- handle cases where permission_revoke table does not exist or is empty
- Process other projects if one project fails with a known error
rename OpalUploadError to KnownError
Start moving shared code to opal_tools_lib
Update setup.py to include new tools/libs

Previously setup.py wasn't including opal_upload and opal_permission_revoke, include those as well.
Refactor opal_upload and opal_permission_revoke to share code

Also switch separator for opal_upload files from underscore to dot.
Fix blob upload

opal_upload now properly handles binary blobs in tables
Merge pull request #20 from thehyve/SESIDEV-31_Time_bound_table

Sesidev 31 time bound table + sesidev 52 binary values in table