[style] fix indent
[style] Just sort out cases

0 -> const -> wild -> shared -> ... -> immutable
[bugfix] Fix type parameter deduction bug

- `inout(U)` should accept `shared(inout(T))`
- `shared(inout(U))` should accept `shared(const(T))`
Clean up inout deduction

- Rename `Type::wildConvTo` to `deduceWild`
- Use `wildmatch` for sum of arguments match level, and use `wm` for one parameter match level.
- Extract current workarounds for issue 6930
fix Issue 6930 - combined type of immutable(T) and inout(T) should be inout(const(T))