[VOL-2241] Python 3 refactor of pyvoltha

Majority of work was manual fixes to bytes and strings types, which are
different in py3, but same in py2. As the OMCI library does a lot of
these comparisons and scapy then renders packets, this was frequently
nontrival to debug.

Also:

- Removed grpc dep which wasn't being used, not py3 compatible
- s/Alarms/Events/ to work with protobuf changes per VOL-2224
- Automatic fixes via modernize tooling
- Removed unused OrderedWeakValueDict code
- Removed frameio send_frame specific to Darwin (MacOS), which had no
  corresponding linux code
- Use library functions for hex and unicode conversions
- Various other cleanups and fixes (EOL whitespace, etc.)

Also more (Matt):

 - handle stringify better, check if already string
 - use binary string for binary work
 - import new thread paths
 - update requirements.txt for newer libraries needed with newer python
 - return proper tuple for unpacking
 - bytes string formatting fixed
 - fix mock task unit test

Even more (Zack):

- Python 2/3 compat for _thread by using 'future'
- Bump version to 2.3.0

Change-Id: I53b596d374a944bfb80d0b112f21bcc1f8bcee6e
diff --git a/Makefile b/Makefile
index eece9ac..43bab9e 100644
--- a/Makefile
+++ b/Makefile
@@ -44,10 +44,9 @@
 VENVDIR := venv-pyvoltha
 
 venv:
-	virtualenv ${VENVDIR};\
-        source ./${VENVDIR}/bin/activate ; set -u ;\
-        rm ${VENVDIR}/local/bin ${VENVDIR}/local/lib ${VENVDIR}/local/include ;\
-        pip install -r requirements.txt
+	virtualenv --python=python3.6 ${VENVDIR};\
+    source ./${VENVDIR}/bin/activate ; set -u ;\
+    pip install -r requirements.txt
 
 test:
 	@ echo "Executing unit tests w/tox"
@@ -57,7 +56,7 @@
 	find . -name '*.pyc' | xargs rm -f
 	rm -rf \
     .tox \
-		.coverage \
+    .coverage \
     coverage.xml \
     dist \
     nose-results.xml \