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()
Why call ```fieldnames(source)``` here? You already have the `flds` argument above, you could just call ```totalfields = len(flds)```. Calling ```fieldnames(source)``` will cause a second iterator to be opened on the source table, and the header row to be read in twice.