Changes to how drivers get arguments and the memory driver

Every driver now gets a string passed in for its own arguments. We parse
it using wordexp and getopt. The memory driver now uses stream