Array#to_h and Array#transpose

Ports of their Ruby counterparts.

Issue with to_h:
```ruby
result = {first.first => last.last}
```
It's meant to initialize a compatible hash. Ugly but it works.
I used that because I don't know if there's way to do a "result = {} of anything in self => anything in self" and ``` Hash(T, T).new``` wouldn't work here (it would be a ``` Hash(Array(T), Array(T)```).