Repository: androguard/androguard
Issue: methods in DalvikVMFormat throws error must be str not bytes

### Describe what you wanted to do
Testing API functions on F-Droid Samples.
When calling the method `get_format` in `DalvikVMFormat`, it throws an error.

### Describe what actually happened

```
Traceback (most recent call last):
  File "test_androguard_fdroid.py", line 73, in main
    r = x()
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 8327, in get_format
    self._get_objs(h, index, objs)
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 8334, in _get_objs
    self._get_objs(h, index, i)
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 8345, in _get_objs
    next_objs = i.get_obj()
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 1163, in get_obj
    return self.pad + pack("=I", self.size)
TypeError: must be str, not bytes
```

This error is not unique to a single file but to all dex files. It looks like `self.pad` is a `str` but `pack` produces `bytes`.

there are similar bugs in other methods too:

```
  File "test_androguard_fdroid.py", line 76, in main
    for t in tests_dex:
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 7730, in save
    c_length = j.get_length()
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 1169, in get_length
    length = len(self.get_obj())
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 1163, in get_obj
    return self.pad + pack("=I", self.size)
TypeError: must be str, not bytes
```

```
Traceback (most recent call last):
  File "test_androguard_fdroid.py", line 76, in main
    for t in tests_dex:
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 8327, in get_format
    self._get_objs(h, index, objs)
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 8334, in _get_objs
    self._get_objs(h, index, i)
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 8345, in _get_objs
    next_objs = i.get_obj()
  File "C:\\Program Files\\Anaconda3\\lib\\site-packages\\androguard-2.0-py3.6.egg\\androguard\\core\\bytecodes\\dvm.py", line 1163, in get_obj
    return self.pad + pack("=I", self.size)
TypeError: must be str, not bytes
```

and probably more... Need to check for all items where pack is called.

### System Information

- Androguard Version: master
- Python Version: 3.6
- Operating System: Windows

Changed files:
androguard/core/bytecodes/dvm.py

diff --git a/androguard/core/bytecodes/dvm.py b/androguard/core/bytecodes/dvm.py
index 1570c9d9..0a02e9ac 100644
--- a/androguard/core/bytecodes/dvm.py
+++ b/androguard/core/bytecodes/dvm.py
@@ -1091,7 +1091,7 @@ class TypeList(object):
 
         self.offset = buff.get_idx()
 
-        self.pad = ""
+        self.pad = b""
         if self.offset % 4 != 0:
             self.pad = buff.read(self.offset % 4)