Resolves issue #176

Passed Travis tests

Resolves issue #176 (https://github.com/alimanfoo/petl/issues/176): addfield() and uneven row lengths

The addfield() function now pads short rows with None to ensure proper alignment.

unittest added: petl.test.transform.test_basics.test_addfield_shortrow()
If the value argument in addfield() is an expression or lambda, iteraddfield() will evaluate the expression or lambda.

In order to solve the index issue with shortrows, we're having to pad the rows with ```None```

So now we have the following situation: addfield() can attempt to execute the expression/lambda on a field that's been padded with ```None```, which will yield a TypeError (e.g., trying to multiply an int and NoneType)

I've added a comment and catch the TypeError in the latest commit - hopefully this is more clear.