Changing external dependencies to follow a range version scheme.

The fixed version numbers for dependencies requires too many changes for every upgrade of any library.
This new scheme will pin to the same major version instead.