Moved AbstractPurchasableFactory to Currency

AbstractPurchasableFactory represents an abstract factory service which
by default is injected with CurrencyWrapper, so that concrete Entity
factories that depend on a valid and consistent Currency can use it to
create new Entities in a stable state (like Product or Variant).

All entities factories whose returned Entity needs a valid Currency object
to be properly initialized should extend AbstractPurchasableFactory.
This is the reason why it has been moved to the Currency component.

CouponFactory has been moved to the AbstractPurchasableFactory hierarchy
Merge pull request #293 from elcodi/feature/coupon-factory

Moved AbstractPurchasableFactory to Currency
Coupon#used is now defined as boolean
Merge pull request #295 from elcodi/fix/coupon-orm-change-used-definition

Coupon#used is now defined as boolean
Improved the way we manager exception in WebTestCase class
Merge pull request #297 from mickaelandrieu/fix-major-issue

Improved the way we manager exception in WebTestCase class
Fixes #290. Renamed abstract class
Merge pull request #298 from elcodi/fix/renamed-abstract-event-class

Fixes #290. Renamed abstract class
Added setDepth() to product factory
Merge pull request #301 from elcodi/fix/product-factory-depth

Added setDepth() to product factory
Removed duplicated method in interface hierarchy
Merge pull request #302 from elcodi/fix/removed-duplicated-interface-method

Removed duplicated method in interface hierarchy
Changed AbstractUser interface hierarchy

AbstractUserInterface now inherits from symfony UserInterface.
Before this change, only AbstractUser was implementing UserInterface.
CustomerInterface and AdminUserInterface were extending
AbstractUserInterface, making it possible to inject into collaborating
objects a User that does *not* implement UserInterface.
Merge pull request #303 from elcodi/fix/changed-abstractuser-interface-hierarchy

Changed AbstractUser interface hierarchy
Added project description and links
Merge pull request #305 from elcodi/feature/readme-description

Added project description and links
Created Shipping Component and Bundle

* Carrier model with two different CarrierRanges
    * Defined by Price
    * Defined by Weight
* Manager to determine all the CarrierRanges satisfied by a Cart, or the best one given a configuration.
* Created Symfony bundle with all mapping information
* Created Fixtures for all GEO model and Shipping
* Functional Tests
* Unit tests
Fixed php headers format