New LanguageBundle

* Moved entity, factory and repository
* Moved language manager
* Moved tests and definition

Also changed some AbstractCacheWrapper logic.

* AbstractCacheWrapper only wraps Cache (Redis, Apc... ) and Encoder (Json, Php, Xml... ),
while all implementations must define their own logic
Merge pull request #135 from elcodi/feature/language-bundle

Extract Language from CoreBundle to LanguageBundle #134
Fixed minor typo issues
Merge pull request #136 from elcodi/feature/language-bundle

Fixed minor typo issues
Issue #137 Revert LocaleManager deletion
Merge pull request #138 from elcodi/fix/revert-localemanager-deletion

Revert LocaleManager deletion
Attribute and Value bundle

AttributeBundle defines the basic key/value model used to support
product configuration, i.e. descriptive attributes as well as "dimensions"
used to identify a particular variant of a product or product extras.
Fixes from php-cs-fixer
Fixed incorrect classname parameter and doctrine mapping
Added SKU for Product
Added Trait for price members in a Product
Initial product variant bundle structure and classes
Moved VariantInterface from Entity directory
Added ORM and Fixture configuration
Fixed circular interface between Product and ProductPrice
Reduced code duplication in tests AppKernel
Changed to new-style app test Kernel
WIP: Variant product override
Merged Variant with Product bundle
Added Purchasable and Purchasableresolverinterface

A Purchasable is an object that:

 * Has a SKU (Stock Keeping Unit) code
 * Has stock attribute, reporting the purchasable availability.
 * Implements ProductPriceInterface, so that prices can be read and written

Using this consistent interface, services and classes that operate on
these features (such as CartManager) will have a shallow dependency
with product classes or interfaces

A purchasable resolver allows an object in the AbstracLine
class hierarchy to specify the concrete logic to recognize
the actual type of a purchasable and to act on the AbstractLine
accordingly.