Typed access to Rows via an automatically implemented interface

Initial implementation that makes it possible to use frame rows in a more type safe way than using just `df.Rows` (without waiting for type provider features in the next version of F#). This lets the user define an interface (by hand) and then fits the columns of the frame to the members of the interface:

    type IStockRow = 
      abstract Open : float 
      abstract High : float 
      abstract Low : float 
      abstract Close : float 

    // Given a frame "msft" which has the 4 columns specified by the interface
    // we can get the rows as "Series<DateTime, IStockRow>" using "GetRowsAs"
    let rows = msft.GetRowsAs<IStockRow>()
    rows.[DateTime(2000, 10, 10)].Close

Here are some things & questions to do before checking this in:

 * Is the API right? Would this be useful or should the feature look differently?
 * If we're including this, it needs more documentation & testing & performance testing...