Add Function variable support

In recipe context, you can add python functions, like:

    def foo(d):
        print('foo called with %s'%(d,))

Later on, such functions can be uses as hook and task functions.

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
tests: Add test recipe for function parsing

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Add unittests for invalid List and Dict items

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Add astunparse to Travis CI install dependencies

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Merge pull request #7 from esben/master

Add Function variable and parsing support
Minor change in Function get_source() format

Don't return leading and trailing newlines.  These should be added
by callers as needed.

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Add an extra Dict.update_if unittest

Signed-off-by: Esben Haabendal <esben@haabendal.dk>