Resolve some ambiguous function warnings.

This replaces the `@vectorize_2arg` macro with explicit definitions. The difference is that it doesn't define e.g. `+(x::AbstractArray{DateTimePeriod}, y::AbstractArray{DateTimePeriod})`, since explicitly defining those array operations isn't necessary and was generating a ton of warnings if both DataFrames and Datetime were loaded.