Introduce avocado.utils.script module [V3]

Follow up of PR #244.

Introduce `avocado.utils.script` module to handle the creation of scripts stored in the file system.

The module includes classes for creating scripts and utility functions.

Some examples:

    CONTENT = """
    #!/bin/sh
    echo "Hi There!"
    """

    x = avocado.utils.script.Script('/var/tmp/test.sh', CONTENT)
    x.save()
    ... do something with x, like run it ...
    x.remove()

    t = avocado.utils.script.make_temp_script('test.sh', CONTENT)
    ... do something with y, like run it ...

Many Avocado's functional tests makes use of script creation, so we will handle these creation using this proper module.

Changes from V2 to V3:

* Rebase branch in a single commit.
* Added the "with statement content manager" methods to the class Script. Now you can have save() and remove() automatically called when you use any instance of Script or TemporaryScript inside a with statement.
* TemporaryScript gains a destructor method, so it will automatically cleaning up things when it's garbage collected. It also supports the with statement.
* Selftests are using TemporaryScript class instead of plain make_script function.