Add `if` field to tasks and commands that allows conditional execution
based on a shell command exit code. When the condition returns non-zero,
the task/command is silently skipped (with verbose logging).
- Task-level: skip entire task if condition fails
- Command-level: skip individual command if condition fails
- Supports template variables in conditions
- Works with for loops (condition evaluated per iteration)
- Works with deferred commands
* refactor: moved/simplified snippets into its own file with tests
* refactor: move snippet to taskfile package
* feat: support snippets with line/col = 0
* feat: functional options for snippets
* feat: added option to hide snippet indicators
* feat: store raw lines for length calculations
* feat: add debug function for TaskfileDecodeError
* fix: decode errors from commands
* fix: schema for defer cmd calls
* fix: linting issues
* refactor: split var and vars into different files like other structures