Refactoring:
- ami generates userscript using only metadata and dist/bundle names;
- now `AbstractAMI` has `MetadataBound` type member;
- distribution should have metadata, which conforms to it's ami's `MetadataBound`;