TypeError: 'str' object does not support item assignment
Steps to reproduce:

1. run `monero.address.Address('41tjz19p4qc2gudqnwsdrhgcgxud8bgxy84ufe869nyw7ywbxw9s9gqbix7piu9d7qjvbjtrdnbubhcf663ydq3bsxj1brL')`

Expected:
`ValueError`
Got:
`TypeError`

The problem seems to be that `monero.base58.decode_block` returns strings for errors instead of raising ValueErrors.

```python
In [1]: import monero.address

In [2]: monero.address.Address('41tjz19p4qc2gudqnwsdrhgcgxud8bgxy84ufe869nyw7ywbxw9s9gqbix7piu
   ...: 9d7qjvbjtrdnbubhcf663ydq3bsxj1brL')

TypeError                                 Traceback (most recent call last)
<ipython-input-5-8987b1372f1f> in <module>()
----> 1 monero.address.Address('41tjz19p4qc2gudqnwsdrhgcgxud8bgxy84ufe869nyw7ywbxw9s9gqbix7piu9d7qjvbjtrdnbubhcf663ydq3bsxj1brL')

venv/lib/python3.6/site-packages/monero/address.py in __init__(self, addr, label)
     28             raise ValueError("Address must be 95 characters long base58-encoded string, "
     29                 "is {addr} ({len} chars length)".format(addr=addr, len=len(addr)))
---> 30         self._decode(addr)
     31         self.label = label or self.label
     32 
venv/lib/python3.6/site-packages/monero/address.py in _decode(self, address)
     32 
     33     def _decode(self, address):
---> 34         self._decoded = bytearray(unhexlify(base58.decode(address)))
     35         checksum = self._decoded[-4:]
     36         if checksum != keccak_256(self._decoded[:-4]).digest()[:4]:

venv/lib/python3.6/site-packages/monero/base58.py in decode(enc)
    161     data = [0] * data_size
    162     for i in range(full_block_count):
--> 163         data = decode_block(enc[(i*__fullEncodedBlockSize):(i*__fullEncodedBlockSize+__fullEncodedBlockSize)], data, i * __fullBlockSize)
    164 
    165     if last_block_size > 0:

venv/lib/python3.6/site-packages/monero/base58.py in decode_block(data, buf, index)
    138     tmp_buf = _uint64_to_8be(res_num, res_size)
    139     for i in range(len(tmp_buf)):
--> 140         buf[i+index] = tmp_buf[i]
    141 
    142     return buf

TypeError: 'str' object does not support item assignment
```