Address code review feedback from Snektron:
- Remove unnecessary ConvFwdProblem intermediate struct
- Add FilterExtent::to_array<T>() for direct type conversion
- Add Args::compute_output_spatial() returning FilterExtent
- Update fwd_ck.hpp to use direct conversion from Args
- Remove legacy conv_fwd_ck_tile.hpp file
- Update test to use new conv/ck_tile.hpp path
This simplifies data flow from 2 type conversions to 1:
- Before: FilterExtent → ConvFwdProblem → final type
- After: FilterExtent → final type (direct)
Tests: All pass including GPU tests