Closes #362 - Make API data objects immutable

Bytes no longer has offset() and toArray() now returns a copy