Added new requirements for assembly version compatibility

- The found version MUST be greater or equal to the requested version.
- Assembly partial name version must have the same major version as full name version. This ensures an assembly containing breaking changes (a different major version) isn't chosen.