Accept Encoding object for Encoding.compatible?

With this change, the following calls are supported:

    Encoding.compatible?(Encoding.find("UTF-8"),
                         "US-ASCII")
    # => #<Encoding:UTF-8>

    Encoding.compatible?("UTF-8",
                         Encoding.find("US-ASCII"))
    # => #<Encoding:UTF-8>

    Encoding.compatible?(Encoding.find("UTF-8"),
                         Encoding.find("US-ASCII"))
    # => #<Encoding:UTF-8>

The following calls are supported before this changes:

    Encoding.compatible?("UTF-8",
                         "US-ASCII")
    # => #<Encoding:UTF-8>