AutoarExtract: add memory backend and destination determination skip switch

This commit add two functions:
  1. Memory can be used as source archive.
  2. Destination determination can be skipped.

This commit also changes:
  1. Fix memory leak in file name pattern array.
  2. Move more local variable into AutoarExtractPrivate.
  3. Rewrite autoar_extract_new*.
  4. Move steps in autoar_extract_run into separate functions. Function
     pointers are used to run each step. This also reduces duplicate code
     doing error checking and cancellation checking.
AutoarCreate: Prevent using uninitialized variables
Make autoar_{extract,create}_quark public