Enceladus's internal ocean and ice shell constrained from Cassini gravity, shape, and libration data