Header automatically select when all rows selected

When the user selects all the rows of the grid, the header cell will automatically update its state to selected. This keeps it consistent with the state of the grid. This is accomplished by comparing the length of the collection with the number of selected models.

Unit tests are done in a different manner than other tests in the suite. This is to ensure that they function properly. This is the only way I found to successfully test for the change.