Added test, Adv.select_tar() detects in function.

Added a test for the Enrage effect.

Changed the select_target() function in Adversary so that it detects
targets in the function, and moved the line where it's called out of the
loop so it only has to execute once.
EffectEnrage done; overrides Adv.select_target().

EffectEnrage replaces Adversary.select_target() with its own function,
_select_target_override() which returns the target specified in the status
effect at creation. When unapplied, it replaces it with the original
function.
EffectBlind test; Effect now catches exceptions.

Wrote test for EffectBlind, constructor for EffectBlind.

If an Effect throws an exception in the _apply_effects or _unapply_effects
functions, the exception is caught in Effect.apply(), Effect.unapply() and
a warning is printed. Currently Effects should only be used on Actors, but
I might extend it to Environmentals as well (like, set the wooden plank on
fire) - this is just in case an effect gets misapplied.
Implemented EffectBlind, Actor.get_senses().

EffectBlind will remove any number of SenseSight objects from the senses
list, including ones added (why would this happen?) during the duration of
the status effect.
Tests for ToolSamplingLaser.
ToolSamplingLaser implemented.

Does not throw an exception if it cannot work on the target - returns
False in that case.