Hadupils::Extensions::Flat, block koolness, etc.

Hadupils::Extensions
* Base constructor accepts block that provides a means of
  customizing the asset list and hiverc entries.
* Flat class extends Base and actually builds a hive initialization
  file for the addition of all assets to a hive session.

For instance:

    hive_ext = Hadupils::Extension::Flat.new('some-path') do
      # This will receive the assets in 'some-path' as input
      # and filters out the hidden ones.
      assets do |items|
        items.reject {|i| i.hidden? }
      end

      # While this will add two commands to the hiverc.
      hiverc do |items|
        items + ['SET my.variable = some_value;',
                 'SET your.variable = this_value;']
      end
    end

The block at initialization is optional.

Hadupils::Assets
* The original test case used filenames that happened to come
  back in lexicographic order from Dir.foreach, so it was just luck
  that allowed the ordering tests to pass for foreach_asset_in and
  assets_in.
* The bug manifested in tests for Hadupils::Extensions::Flat.
* Reproduced the bug by changing the original test filenames.
* Fixed the bug specifically in assets_in.
* Removed foreach_asset_in, which was a hassle to use anyway.