Support mrecarrays in DataFrame constructor

This is intended as a fix for #3478. Sorry I do not have the time to write rigorous tests.