A list of key-value pairs of params.
Acts essentially like a hash-map, but is presented in list form to preserve key order, as well as to handle rare cases where a key may be duplicated.
Keys are hashed strings, represented by the Hash40 type.
Attempts to read a param file from the given reader (requires Seek).
The reader should be positioned at the header of the filetype.
Returns a ParamStruct if successful, otherwise an Error.