Fix crash when writing a non-existent attribute
Writing an attribute that does not exist swallowed the DevFailed from the configuration lookup and converted the value against an uninitialised AttributeInfoEx, which segfaulted on macOS and raised a misleading "unsupported data_format" on Linux. The error is now propagated, so write_attribute reports API_AttrNotFound like write_attributes already did.
The attribute type dispatch fell back to assert(false), a no-op in release builds, so an unhandled data type silently skipped the conversion and left the caller with unset data; it now raises a TypeError naming the type. This reaches all dispatch sites, which all hold the GIL, and also fixes a hang when a caller-built AttributeInfoEx is passed to write_attribute.
Closes #785 (closed)