[XLA] Make shape util fuzzer happy
[XLA] Make shape util fuzzer happy

Handle the following cases:
1. Don't call ShapeUtil::ByteSizeOf() on a shape that isn't a dense array.
2. Don't call ShapeUtil::ByteSizeOf() on a shape with unbounded dim(s).
3. Handle negative element_size_in_bits field in the Layout proto. Change Layout::element_size_in_bits_ to match the proto type to avoid narrowing conversion and sign loss. Then check if the field is negative and return an error during validation.
