title: Store.findBy() acting crazy?
body: <p>I have been debugging this for days. <code>Store.findBy(function (record, id)</code>
  not behaving. Or maybe it me misbehaving. Have put the JSON in the code so it is easy to test. FindBy() is matching 12345 and there is no 12345 and it comes back with an index of 0 and foo. What am I doing?</p>
  
  <pre><code>Ext.application({
      name: 'MyApp',
      launch: function() {
  
          var theJson = {
              "users": [{
                  "user": {
                      "id": 0 ,
                      "name": "foo" ,
                      "age": 22 ,
                      "skills": [{
                          "type": "bowcrafting" ,
                          "skillLevel": 50 ,
                          "levels": [10, 25, 50, 75, 90, 95, 99, 100]
                      }]
                  }} , {
                  "user": {
                      "id": 1 ,
                      "name": "bar" ,
                      "age": 71 ,
                      "skills": [{
                          "type": "fencing" ,
                          "skillLevel": 32 ,
                          "levels": [10, 25, 50, 90, 95, 99, 100]
                      } , {
                          "type": "swordsmanship" ,
                          "skillLevel": 73 ,
                          "levels": [10, 25, 50, 75, 80, 85, 90, 95, 99, 100]
                      }]
                  }} , {
                  "user": {
                      "id": 2 ,
                      "name": "foobar" ,
                      "age": 132 ,
                      "skills": [{
                          "type": "tactics" ,
                          "skillLevel": 90 ,
                          "levels": [10, 25, 50, 90, 95, 99, 100]
                      } , {
                          "type": "carpentery" ,
                          "skillLevel": 86 ,
                          "levels": [10, 25, 50, 75, 90, 95, 99, 100]
                      } , {
                          "type": "hiding" ,
                          "skillLevel": 100 ,
                          "levels": [10, 25, 50, 65, 75, 80, 85, 90, 95, 99, 100]
                      }]
                  }
              }]
          };
  
          var jstore = Ext.create ('Ext.data.Store', {
              fields: ['id', 'name', 'age', 'skills'] ,
              data : theJson,
              proxy: {
                  type: 'memory' ,
                  reader: {
                      type: 'json' ,
                      root: 'users' ,
                      record: 'user' ,
                      idProperty: 'id'
                  }
              } ,
  
              autoLoad: true
          });
  
          Ext.create ('Ext.button.Button', {
              text: 'Push me' ,
              renderTo: Ext.getBody () ,
              handler: function (btn) {
                  var index = jstore.findBy (function (user, id) {
                      // Here's the hint
                      if (user.data.skills.skillLevel === 12345) return id;
                      else return -1;
                  });
  
                  console.log ('index = ', index);
  
                  if (index != -1) {
                      // It will print 'foo' because it's the user
                      // that has the skillLevel equal to 50
                      console.log (jstore.getAt(index).get ('name'));
                  };
  
                  if (index === -1) {
                      // It will print 'foo' because it's the user
                      // that has the skillLevel equal to 50
                      console.log ('Failed');
                  }
              }
          });
      }
  }); 
  </code></pre>