Properly compare assembly versions when performing binding. Fixes #17368.

The right way to compare assembly versions is by translating the major/minor
pair into a single number and compare that.

Since each element can only be one byte long, we multiply major by 256
before adding to minor.

This solves the problem where version 100.0.0.0 was not after 3.5.0.0.