Added support for constructing a table from a list of dicts

Implemented [ticket #647](https://github.com/astropy/astropy/issues/647).  I did not implement anything with regard to recognizing None as missing data, as that got split off into another ticket.

As every dict may not have the same keys, it compiles a set of all the keys across all dicts first, then compiles columns from those key names.  Missing values are taken to be None.

After the list of row-dicts is converted to a dict of col-lists, the _init_from_dict() method is called and the function returns.