#938. If Money.ZERO is being used to add or subtract, then the currency
of the Money object being operated on is used.  The default currency
that might be associated with Money.ZERO is not used, or ignored, when
doing money additions or subtractions.
#938. Fixed add method so that it works if taking in a negative number.
#900. Ensuring that a call to CustomerState.getCustomer() returns null
if no BroadleafRequestContext is set.
#900. Doing the same thing with CartState that we did with
CustomerState.  A call to getCart() will return null rather than
throwing a NPE if outside of a web request, or if outside of the
BroadleafRequestFilter.
Fixes #923 - Build BasicFieldMetadata for fields that happen to be foreign keys as well as be annotation as collections in the admin (like with ManyToMany relationships). This way, logic does not have to be duplicated between different persistence providers
#764 - Add method to site to determine if it was created from a template
Merge branch 'BroadleafCommerce-3.0.x' into BroadleafCommerce-3.1.x

Conflicts:
	core/broadleaf-profile-web/src/main/java/org/broadleafcommerce/profile/web/core/CustomerState.java
Fix compilation problem
#944 - Fix package names for Secure Payments and fix ORM file names to conform to new 3.1 payment naming standard
#944 - use class name
Fixes #945 - Model the relationship between Catalogs and Site as a new explicit join entity
#927 - Provide a friendly name for adding new Catalogs in the admin
Merge branch 'BroadleafCommerce-3.1.x' into develop

Conflicts:
	admin/broadleaf-open-admin-platform/src/main/java/org/broadleafcommerce/openadmin/server/dao/provider/metadata/CollectionFieldMetadataProvider.java