Add `into` operation to api

This restarts #240 , creating an abstract `into` operation to shove data in one container into another.  This is analogous to the various `as_foo` and `fromtop

```Python
>>> into([], (1, 2, 3))  # cast lists, tuples, sets
[1, 2, 3]

>>> into(nd.array(), [1, 2, 3])
nd.array([1, 2, 3], type="strided * int32")

>>> into([], nd.array([1, 2, 3]))  
[1, 2, 3]

>>> csv = CSV('user_edges.txt', 
          columns=['transaction', 'sender', 'recipient', 'timestamp', 'value'],
          hints={'timestamp': 'datetime'})

>>> from pandas import DataFrame
>>> into(DataFrame, csv)
    transaction   sender  recipient           timestamp       value
0             1        2          2 2013-04-10 14:22:50   24.375000
1             1        2     782477 2013-04-10 14:22:50    0.770900
2             2   620423    4571210 2011-12-27 11:43:12  614.174951
3             2   620423          3 2011-12-27 11:43:12  128.040520
4             3        3     782479 2013-04-10 14:22:50   47.140520
5             3        3          4 2013-04-10 14:22:50  150.000000
6             4    39337      39337 2012-06-17 12:02:02    0.310818
7             4    39337          3 2012-06-17 12:02:02   69.100000
...
```
Thanks for the PR @mwiebe .  At some point we might also want to think about improving this, both in terms of speed and dtype enforcement.