Edited select_target test to check for eid.

Formerly was checking for entity object, not eid.
Edited Enrage, SamplingLaser, LevelView.

Implemented the ActorApplyStatusEffect Command. Note that it dynamically
creates whatever class object you stick in, meaning that typing may or may
not be a friggin' nightmare down the road if I mess with it.

Edited SamplingLaser's tests, SamplingLaser. Now passes tests. Added
function to LevelView is_destructible(eid) as a helper.
Removed obsoleted warning.
Fixed bug; LoaderEntityIndex.lvl was never set.

Now set in LoaderLevel._load_level(). Do pay attention to the warning if
it pops up.
Added new test to ToolManipulator.

There was no test checking to see if it worked on Environmentals.
ToolManipulator, EnvironmentalTrigger impelmented.
All Tool tests green.

Implemented LevelPlaceAndAssignEntityID.
All entities have is_player_controlled().

Entity.is_player_controlled() will return False; overridden in Actor to
check the faction.

The new code for choosing the player actor on load was utilizing
is_player_controlled, and I viewed this solution as preferable to catching
exceptions silently.
LevelController zappy_attempt_move rewritten.

Now uses Commands, but somewhere an actual Level is passed into the object
creation, as opposed to a LevelView. This causes an exception when you try
to move.
Fixed Actor creation; no Level objects passed in.
LvlCntrl.zap_atmpt_mv now checks for passable.
Removing UI's access to Level itself.
Changed direct refs to entities to eids.
Changed assert to warning.

No longer asserts that Actor._level is a LevelView; warns if not.
TestLevel test edited to conform to eid.

Used a string before, now uses DummyObject.
Correcting testUIScreenLevel.
Keeping at this test code updated is kinda a pain.

It's like having to maintain double the code. Is there a better way, or is
this problem inherent to the process, and is just something you have to
live with?
Adversary modified to update, pass tests.
Removed get_coordinates_of_eid() from LevelView.

Was redundant with LevelView.ent_coords().
Phasing out the try/except for calls.

One of the issues with doing try/except on an object which is of
indeterminate type is that it may mask an actual exception in the called
object.

For example, if we have a list of objects, and we want to call do_thing()
on each object, we could do:

for obj in objects:
	try:
		obj.do_thing()
	except AttributeError:
		print "Object {0} can't do the thing!".format(obj)

However, if the do_thing function itself is throwing an AttributeError, it
will show up as not having the do_thing function defined! This is
confusing and confounding.

My workaround is to check that you can do the thing by using hasattr, and
then use callable to make sure it's, well, callable, as follows:

for obj in objects:
	if hasattr(obj, 'do_thing') and callable(obj.do_thing):
		ob.do_thing()

The thing with this here is hasattr() requires you to put it in as a
string, so if you auto-refactor it, or search for usages using .do_thing()
it won't show up and bugs may creep in.

So it's a tradeoff in sources of bugs.