adding generic artifact concept and refactoring deployment services to deploy artifacts instead of applications