Encode strings to bytes passed to databuffer
Encode strings to bytes passed to databuffer

`BinaryView.find_next_data` wraps the call to DataBuffer with `str`. For python3 this gets passed to `DataBuffer` as a unicode string and not a byte string. `DataBuffer` does not convert str to bytes and creates a bad DataBuffer. 

```python
>>> a = DataBuffer('abcd')
>>> str(a)
'abcd'
```
This PR encodes a python3 str to bytes using `charmap`. It verifies that `bytes != str` to only encode a python3 str and not a python2 str.
joshwatson/binaryninja-api,joshwatson/binaryninja-api,joshwatson/binaryninja-api,Vector35/binaryninja-api,joshwatson/binaryninja-api,Vector35/binaryninja-api,Vector35/binaryninja-api,joshwatson/binaryninja-api,Vector35/binaryninja-api,Vector35/binaryninja-api,Vector35/binaryninja-api,Vector35/binaryninja-api