Rename emod to emod.py

to simplify importing the module for testing it was renamed to emod.py,
otherwise it we would have to write an __init__.py file just to import
it.
Add if main block.

Using if main block for script execution to prevent it from going off
when importing it.
Test cilist.

First test, testing cilist for case insensitive membership tests.
Move testcase.py to test/ directory.

And made modification to ensure the test script runs from both the test
directory and the emod directory.
Test expressions for package files.

Turns out there are many different expressions used in package files,
i believe package.expressions covers most of the syntaxes, description
of these forms can be found in the ebuild(5) and portage(5) man pages.

Added test for these expressions, which includes expressions found in
the man pages and ignoring empty lines and lines starting with a "#"
symbol.
read_rules() ignores empty lines and comments

Modified emod to pass the testcase in commit
2678fc0d9dd7ed8ddb1a0f8072f68dd349adec8a

read_rules() will ignore all lines that either start with a "#" or are
made up of whitespace (empty line). It also sorts the results before
returning.

The changes only apply with working with a file, not a directory since i
have not written a test for that yet.
Fix small typo with os.mkdir()

os.mkdir() should not take any keyword arguments, mode must be specified
directly after the path.
Move package.expressions to package.expressions.file

With the addition of package.expressions.dir to seperate file and
directory structures.
Delete old package.exressions file
Add testcase for read_rules() for directory structures.

Added a new method test_read_rules_expr_dir() to test read_rules() for a
directory structure.

Renamed test_read_rules_expr() to test_read_rules_expr_file() to avoid
confusion.

Moved the out list to a class variable, to make accessible to all
methods.

set maxDiff to None to disable the line limit of diff when errors occur.
read_rules() will act correctly with directories.

Modified emod.py to pass the testcase in commit
e894b8da38de90121eb89c8774409385a92bde20

read_rules() ignores empty lines and lines starting with "#" character
when working with directories, and the results are sorted before being
returned.
Test save_rules() for correct output.

Added a testcase for save_rules() to make sure its saving files as it is
supposed to.

Only testing file structures, directories are going to be a little
trickier to compare.
save_rules will sort the rules before saving.

To pass the test in commit df8aa4ffe31852f9848dce80c87f7803a0cfcd81
rules have to be sorted before be written into a file.