Consolidate functionality under new array function

This is a draft of a new `array` function that replaces `failNA`, `replaceNA`, `vector` and `matrix`. @simonster, it would be great to get your thoughts on this. I'm really excited about the idea of getting rid of so many functions at once, although I'm not sure this interface is the right one. In particular, I'm torn on the system I'm using for handling the functionality once found in `replaceNA`. I tried to avoid having Bool flags for both `fail` and `replace`, but maybe that's better than this draft.