Project StoreCampaignObject/RetrieveCampaignObject into CLRScript.

- Add mechanism for CLR code to register to handle specific calls
  to StoreCampaignObject() and RetrieveCampaignObject().  The
  custom handlers can store the raw GFF byte array to an arbitrary
  location, or provide a raw GFF byte array from an arbitrary
  location.  This could be used for improved appearance editors,
  creating and modifying items on the fly, or replacing the default
  campaign database with a more scalable implementation.

- A CLR project can subscribe to
  ALFA.Shared.CampaignDatabase.StoreCampaignDatabaseEvent and
  ALFA.Shared.CampaignDatabase.RetrieveCampaignDatabaseEvent in
  order to handle StoreCampaignObject() / RetrieveCampaignObject()
  requests whose campaign name starts with the "VirtualDatabase"
  string.

- Multiple projects can register for the campaign database events,
  but each should generally use a unique campaign name suffix in
  order to coexist.
Merge branch 'master' of https://github.com/ALandFarAway/ALFA-Base-Resources