def normalize_params(params, params_out = {})
      if params.instance_of?(Array)
        params.each{ |param| normalize_params(param, params_out) }
      elsif params.instance_of?(Hash)
        params.each do |k, v|
          k = normalize_key(k)
          params_out[k] = {}
          normalize_params(v, params_out[k])
        end
      else
        params_out[normalize_key(params)] = nil
      end
      params_out
    end
def normalize_params(params, params_out = {})
      if params.instance_of?(Array)
        params.each{ |param| normalize_params(param, params_out) }
      elsif params.instance_of?(Hash)
        params.each do |k, v|
          k = normalize_key(k)
          params_out[k] = {}
          normalize_params(v, params_out[k])
        end
      else
        params_out[normalize_key(params)] = nil
      end
      params_out
    end
When specifying params to protect, we allow a combination of arrays and hashes much like how
 ActiveRecord::Base#find's :include options works.  This method normalizes that into just nested hashes,
 stringifying the keys and setting all values to nil.  This format is easier/faster to work with when
 filtering the controller params.
 Example...
   [:a, {:b => [:c, :d]}]
 to
   {"a"=>nil, "b"=>{"c"=>nil, "d"=>nil}}