fix: support module-level @runnable with continue_tracing() (#391)
## Summary
`@runnable` previously captured the trace context snapshot at decoration time, which only worked when applied **inline** during an active request. Module-level `@runnable` (the natural Python pattern) silently broke cross-thread trace linking because the snapshot was `None` at import time.
### Changes
- `@runnable` now returns a `_RunnableWrapper` object with a `continue_tracing()` method
- `continue_tracing()` captures the snapshot on the calling (parent) thread and returns a callable for use as `Thread` target — this enables module-level `@runnable`
- `__call__` preserves the original behavior: uses the decoration-time snapshot for inline `@runnable` — **no breaking changes**
### Usage
**Module-level (new, previously broken):**
```python
@runnable(op='/post')
def post():
requests.post(...)
@app.route('/')
def hello():
thread = Thread(target=post.continue_tracing()) # snapshot captured here
thread.start()
```
**Inline (unchanged, backward compatible):**
```python
@app.route('/')
def hello():
@runnable(op='/post') # snapshot captured at decoration time
def post():
requests.post(...)
thread = Thread(target=post)
thread.start()
```
Closes https://github.com/apache/skywalking/issues/116059 files changed