changed api somewhat and adding equals and hashcode for ByteString and Rope