Add a "pure" field to primitive metadata

By default it would be set to True and would mean that primitive is pure: it always returns the same value for given random seed and inputs. If this is not the case (only data augmentation "download" primitive is currently known to be such) the primitive should set it to False. That would then make the whole pipeline non-pure. And would help inform any metalearning process why maybe there are differences in results between runs.

Is pure a good name for this metadata field? Any other suggestion?