Array.astype: override astype for correct return type

    - astype now returns type(self)