add class:get_devices()
add sysfs class device iterator function
change class device iterator to push full userdata
add class device object and its {con,de}structors
add attribute object and its {con,de}structor
add get_attribute and get_attributes methods for class_device object
add device object
change class_device_iter() to use the object specific push function

Note:

The object specific push functions are autogenerated by LuaNativeObjects!
add class_device:get_name()

Note:

A similar function doesn't exist in the C API because the struct members can be
read directly.
add class_device:get_path()

Note:

A similar function doesn't exist in the C API because the struct members can be
read directly.
add class_device:get_classname()

Note:

A similar function doesn't exist in the C API because the struct members can be
read directly.
change class_device_iter() to not set any object flags when pushing the object onto the stack

Note:

We need to clarify the use cases of the different flag types"

Using the available flags now produces following issues:
- OBJ_UDATA_FLAG_OWN segfaults here with lua and luajit
- OBJ_UDATA_FLAG_LOOKUP works with lua but segfaults with luajit