add spread_ method for data.table

`melt_`  works directly on data.table since gather uses reshape2::melt. However, it is not the case for `spread_`. So I've written a method for data.table using dcast.data.table