Deserialize the given buffer and return the appropriate data structure. Returns None if the buffer could not be interpreted.