Fixed numerous issues in pyro.sort_tree

Fixed numerous issues in pyro.sort_tree, including:
- user defined classes (like 'no-nest') were being removed
- wrong icons were being set for all parents when dragging items with hidden children
- child icons didn't properly update when dragging/dropping items with children
- cookies weren't saved when dragging/dropping items
- cookies could save invalid states
is_required to required for default theme install.
Make theme options required column nullable
Merge pull request #3194 from james2doyle/2.3/theme-required-fix

is_required to required for default theme install
Add whereHas() for filtering results by relationships. Break down into SOLID classes
Improvements for query filters
Always eager load this
Merge branch '2.3/develop' of github.com:pyrocms/pyrocms into 2.3/develop
Fix some variables in the EntryQueryFilter
Merge branch '2.3/develop' of github.com:pyrocms/pyrocms into 2.3/develop
Check for a template first and parse that before checking for methods / auto presenting
Merge branch '2.3/develop' of github.com:pyrocms/pyrocms into 2.3/develop
1 more PHP 5.3 closure fix
Merge pull request #3196 from huglester/patch-4

1 more PHP 5.3 closure fix
replace $items with all(). ($items is protected)
Merge pull request #3197 from huglester/patch-5

replace $items with all(). ($items is protected)
Starting to convert drivers
Merge branch '2.3/develop' of github.com:pyrocms/pyrocms into 2.3/develop
Improve base presenter
Improve EntryPresenter template formatting to include appends