Hooks for pylint, astroid and accompanying fixes.

Add: Hooks for pylint and its dependency, astroid.
     Optional subdir parameter to hookutils.collect_data_files,
       .collect_submodules to support pattern of run-time imports in a directory
       lacking __init__.py.
     Tests for pylint.
Fix: Pylint prints out lots of output, which isn't ready by runtests.py. Be sure
       to read all stdout when the process finishes.
This collects all stdout output produced by the process, not just what was read while the process was running. (Recall that the OS buffers output, so it can still be read after the process finishes). Without this line, I get this output:

```
C:\Users\bjones\Documents\pyinstaller-git\tests>python runtests.py -v libraries\
test_pylint.py
Running test:  libraries/test_pylint
187 INFO: Testing for ability to set icons, version resources...
[...snip... lots of build output...]
10145 INFO: building COLLECT out00-COLLECT.toc

########## EXECUTING TEST libraries/test_pylint ##########

RUNNING: dist\test_pylint\test_pylint.exe

########## STDOUT libraries/test_pylint ##########

Usage:  test_pylint.exe [options] module_or_package

  Check that a module satisfies a coding standard (and more !).

    test_pylint.exe --help

  Display this help message and exit.

    test_pylint.exe --help-msg <msg-id>[,<msg-id>]

  D

########## STDERR libraries/test_pylint ##########

No config file found, using default configuration

ok

----------------------------------------------------------------------
Ran 1 test in 11.612s

OK
```

It looks like something is wrong with pylint -- it stops in the middle of a word! With the line, I get:

```
C:\Users\bjones\Documents\pyinstaller-git\tests>python runtests.py -v libraries\
test_pylint.py
Running test:  libraries/test_pylint
187 INFO: Testing for ability to set icons, version resources...
[...snip... lots of build output...]
10145 INFO: building COLLECT out00-COLLECT.toc

########## EXECUTING TEST libraries/test_pylint ##########

RUNNING: dist\test_pylint\test_pylint.exe

########## STDOUT libraries/test_pylint ##########

Usage:  test_pylint.exe [options] module_or_package

  Check that a module satisfies a coding standard (and more !).

    test_pylint.exe --help

  Display this help message and exit.

    test_pylint.exe --help-msg <msg-id>[,<msg-id>]

  Display help messages about given message identifiers and exit.


Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  --long-help           more verbose help.

  Master:
    --rcfile=<file>     Specify a configuration file.
    -E, --errors-only   In error mode, checkers without error messages are
                        disabled and for others, only the ERROR messages are
                        displayed, and no reports are done by default
    --ignore=<file>[,<file>...]
                        Add files or directories to the blacklist. They should
                        be base names, not paths. [current: CVS]
[...snip - lots more after this ...]

########## STDERR libraries/test_pylint ##########

No config file found, using default configuration

ok

----------------------------------------------------------------------
Ran 1 test in 11.612s

OK
```

Much better -- I now know that pylint when frozen works.