title: testng not running in priority order when dependsOnMethods is specified
body: <p>Whenever we specify <code>priority</code> and <code>dependsOnMethods</code> on a <code>@Test</code> annotated method, the order of execution of test methods is not according to the priority. why is so?
  Here is the test class to demonstrate the issue:</p>
  
  <pre><code>package unitTest.TestNGTestCases;
  
  import org.testng.annotations.Test;
  
  public class TestNGTest1 {
      @Test(priority=1)
      public void t1()
      {
          System.out.println("Running 1");
      }
      @Test(priority=2,dependsOnMethods="t1")
      public void t2()
      {
          System.out.println("Running 2");
      }
      @Test(priority=3,dependsOnMethods="t2")
      public void t3()
      {
          System.out.println("Running 3");
      }
      @Test(priority=4)
      public void t4()
      {
          System.out.println("Running 4");
      }
  }
  </code></pre>
  
  <p>Actual Output : </p>
  
  <pre><code>Running 1
  Running 4
  Running 2
  Running 3
  
  ===============================================
  All Tests Suite
  Total tests run: 4, Failures: 0, Skips: 0
  ===============================================
  </code></pre>
  
  <p>Expected output : </p>
  
  <pre><code>Running 1
  Running 2
  Running 3
  Running 4
  
  ===============================================
  All Tests Suite
  Total tests run: 4, Failures: 0, Skips: 0
  ===============================================
  </code></pre>
  
  <p>The order of test execution should have been t1, t2, t3, t4. why is t4 getting executed after t1, when t2 and t3 have higher priority then t4?</p>
  
  <p>TIA</p>