Move Agent thread to also have a Ruby thread representation

This is needed, because for example the object walker expects a native
environment setup if it walks C-API objects that end up calling
rb_gc_mark_maybe.

Fixes #2328
Set thread names properly and handle in agent

This sets up thread names for system thread and also makes the agent
aware of system threads for information output.