Improve the unit test for giving addAction() a table

We define a table within the test function itself.  This patch deletes
that table and creates a new one in the same scope as the other
actions we use within that block of tests.  This will allow us to
write more tests in that describe() section which use tables instead
of functions for actions.
Add a unit test for callsAction() accepting tables
Refactor the test for valid actions into a private function

The method addAction() first determines if the argument it receives is
a valid action or not.  This patch moves that test into a separate
function which is private to the Luvent module.  This not only
improves readability but also gives the means, if necessary, to test
other arguments and data to see if they are valid actions.
Simplify addAction() by using callsAction() to replace its for-loop
Return a table index when searching for actions

We can use callsAction() to determine whether or not an event will use
an action or not.  However, given an action we have no way to find
where it appears in the ‘actions’ table of an event; the best we can
do is manually loop through the table until we find the action and
then return its index.  We already perform this exact type of loop in
the callsAction() method.

So this patch extracts the logic of callsAction() into a separate,
private function that we name findAction().  This function will tell
us if an event has an action, but on top of that it will return the
index for that action if it exists.  We can use that index to improve
the code of other methods, and with this patch we rewrite
callsAction() to simply call findAction() and only return the first
value, preserving the previous behavior.
Simplify removeAction() by using findAction() to remove its for-loop
Makefile: Create tags for use with GNU Emacs