remove duplicate addAbility, addAbility(MagicAbility) includes the implementation
parse abilities as MagicAbilityList instead of MagicAbility to allow abilities with implementation
correct condition from isCreature to isPermanent so that in protection checks
source can be any permanent, not only creatures

fixes issue 470
add test for protection from artifacts