implement dup and idup library functions

- uses inferrence for pure and nothrow

- allocates uninitialized memory using _d_newarrayU