Add is_installable() framework capability

* Extends tools to manage a list of a version and archs detections.
* Add tests and caching for those.
* Add support in framework to set an optional list of restriction based on
  archs and versions. Only registers frameworks that match those criterias, if
  any, that can be overriden in child frameworks.
* Add assets and more tests on those.
Add tests for is_installable override from child