[Application] Renaming XPKExtractor to Extractor

Extractor class will be used by all the package formats to
Extract / unzip the package to a temporary directory
Extractor unit test right now are checking only the xpk packages
Unit tests for .wgt packaged files will follow later
Extractor unit test should use with scoped_ptr
Rename SetupXPKExtractor to SetupExtractor
[Application] Add a base class Package.h|cc

The specific formats like xpk/wgt should inherit from
this base class. Package::Create() should create the specific
class depending on the file extension.
Generalize the Extractor, meaning Extractor class now has a
base class(Package) pointer.
change is_ok to is_valid
.get() is not needed
[Application] Inherit XPKPackage from Package

Refactoring Package related classes to a more generic approach.
VerifySignature() seems to be a better name than Validate() as the only
thing done in that function is verify the signature
[Application] Add a WGTPackage class inheriting from Package

Add a basic implementation of WGTPackage class
AFAIK there is no need for pre processing in the wgt package
like checking signature or header.
So we can directly proceed to parsing the xml
[Application] RefCounting Extractor is not necessary.

Since extractor is only called in application_service, we dont need
to use RefCountedThreadSafe. A simpler scoped_ptr suffices.
[Application] Check for both .xpk and .wgt files

Extractor::Create() and Pacakge::Create() are the callers where
we check for the file extension
[Application] Use only 1 factory method for Create()

Only Package::Create() method should be static. It should create the
appropriate derived class object. The derived class should not have any
factory method / static Create()
The base class constructor in (Package class) should be protected.
Remove unnecessary kXpkExtension
[Application] Move Extraction logic inside Package class

Simplify the code by putting the Package extraction logic inside the
Package Class.
Remove Extractor.h|cc
Rename extractor_unittest.cc to package_unittest.cc
[Application] Remove unnecessary constructors

Remove unnecesary constructors. We are always creating new objects
passing the path. So constructor that takes ScopedStdioHandle is not needed.
Remove default constructors
[Application] Fix unit tests

Fix for the package unit tests
Merge pull request #1122 from riju/legacySupport

[Application] Support loading WGT packages