ENH: itertuples() returns namedtuples (closes #11269)
closes #11269  

This will make itertuples return namedtuples. I'm not sure about tests, here. Since `namedtuple` is a drop-in replacement for ordinary tuples (once they are created) I naively expect things to work.

tests!

take a frame of multiple dtypes, call itertuples on list, then assert that the first tuple generated has the correct fields, named correctly (and handles rename properly).

need a test for python26 when renaming fails (but the tuple works), and where it fails completely.

these should go with other tests of itertuples.
 need some tests
 Added tests for `namedtuple`s and the `name` argument. Squashed.
 Sorry for the noise, but I'm hitting `SyntaxError: more than 255 arguments` with a large number of columns. I've modified things to just return regular tuples via `zip()` on any exception, as things were before.
 The commit with updated tests was for some reason not pushed, trying again.
 Ok, thanks for your comments. I was quite happy to have a regular tuple fallback set up.
 ok minor comment.
 need a whatsnew note. put in the API section
 ok, ping when green.
 Python 2 turned out to happily accept an almost infinite number of arguments, so i just set a hard limit of 255 fields.
 @jreback all done if you approve the last modification.
 It's just that calling the method with a large number of fields on Python 2 was really slow.
 @mjoud i c. ok then.
 @jreback ok fixed
 Thanks, better. I'm not exactly showing off here...
 @mjoud thanks!

nice PR. 
