Fixed #22315 -- str/bytes mismatch in staticfiles

Previously, `ManifestFilesMixin.read_manifest` failed in Python 3
because `json.loads` accepts `str` not `bytes`.

Also added test for `read_manifest`.