implements expand_dims
expand_dims has the potential to hold more metadata than a plain reshape and has cleaner axis-type propagation semantics
expand_dims has the potential to hold more metadata than a plain reshape and has cleaner axis-type propagation semantics