Expand --testcase and --ignore-testcase match targets to parent test case classes

Think the following case:

    class TestCalc < Test::Unit::TestCase
      def test_sub
      end

      sub_test_case("add") do
        def test_negative
        end
      end

      class TestMulti < self
        def test_positive
        end
      end
    end

Before this change, the following command line runs only
test_sub and test_positive. test_negative isn't run.

    % test/run-test.rb --testcase /Calc/

Because test case that is created by sub_test_case("add") has "add" as
its test case name. It doesn't include "TestCalc" that is the name of
the parent test case. So "--testcase /Calc/" doesn't match
sub_test_case("add").

"class TestMulti < self" has "TestCalc::TestMulti" as its test case
name. It includes "TestCalc" that is the name of the parent test
case. So "--testcase /Calc/" matches "class TestMulti < self".

By this change "--testcase /Calc" also matches sub_test_case("add").
Because the parent test case names are also used to match test case
name.