Add classes to druid-api to facilitate the creation of storage and firehose implementations purely from the druid-api jar



This change set moves some files from Druid into druid-api in order to allow for the implementation of storage and firehose extensions without depending on Druid proper.

Note, this does imply a re-licensing of the various files added, but I felt that it was important to be able to extend without having to pull all of Druid into the extension (and fight with the resultant versioning issues)