Complain about destroying locked string objects

This should only happend due to internal programming error.
Break some long lines
Send async file read callback for async file read with length zero
Include file name in log messages for file objects
Fix error message in string_set_chunk function
Rework object system once again

Add a Object base type for all other objects. This properly separates
the actual object handling from the object table itself.

Move lock count handling into Object type.
Add object log category
Add list object type