fix ranking of types.  first, the explicit option should win, hence the reverse merge. next, if a type inference is made this should be used.  then, the type specified by the most recent scope defining call like js(&blk) or css(&blk) goes.  next, if there is an extension, this means that the user attempted a type inference but used an improper file type.  we want to know about this so we can fail validation.  finally, the type of the expansion wins like, expansion(:rails, :type => :js) { asset 'foo/bar' }
fix ranking of types.  first, the explicit option should win, hence the reverse merge. next, if a type inference is made this should be used.  then, the type specified by the most recent scope defining call like js(&blk) or css(&blk) goes.  next, if there is an extension, this means that the user attempted a type inference but used an improper file type.  we want to know about this so we can fail validation.  finally, the type of the expansion wins like, expansion(:rails, :type => :js) { asset 'foo/bar' }

shwoodard/active_assets,shwoodard/active_assets