Add Spree::LicenseKeyType#available method.

Change-Id: I2af8f400204863f04d4d55265298b864c5cf089c
Introduce Spree::LicenseKeyPopulator to populate license keys.

This abstracts the process of populating an inventory unit with license
keys into a class, Spree::LicenseKeyPopulator, with the existing
mechanism for populating from the database implemented as
Spree::DefaultLicenseKeyPopulator.

Change-Id: I0c250f2561e47cf43cee3e78a10926a871f3659b