java_gen: c14n OXMs on build, related enhancements, a few bugfixes

Reviewer: @vaterlaus @kwang-bsn

This PR gives OXM objects the ability to return canonical versions of themselves, and uses this to make sure the OXM list appears in canonical form.
 - Masked OXM entries with the value entirely ignored (mask all-0) are removed
 - Masked OXM entries with the value entirely matched (mask all-1) are converted to their non-masked equivalent

@kwang-bsn - this is on the main branch and will be ported to blackbird in a 2nd step.