ManifestItem struct for items in manifest

Good to avoid OpenStruct, since it hides some errors (ex OpenStruct.new.typo_function_name #=> nil). No reason for this not to be a struct.