This doesn't seem right because `ECPointFp.decodeFrom` implies the return value will be a ECPointFp object. I'd prefer this function only return Q. We can have another function `ECPointFp.isCompressed(curve, buffer)` just for the compressed byte testing.