Merge identifier variants whilst keeping compatibility.

This will smoothly migrate all identifiers to V2.

Fixes #56.
Fixes #79.
Fixes #149.

This will need to wait for some ci tests.

Personal thing I guess, part asthetics, part I don't particular like having to hack around inconsistent syntax, and scala 's rules for dropping parens / (.) Is a mess as you add additional calls. Same reason I try to always, parens funxtions.