Made selectChildren recursive, and select a simple function that justs selects the item.

Changed the functions that called `select` to instead call `selectChildren`.

In addition, in `selectChildren` I changed this: `if (state && params.deepLoad) {` to this: `if (state && params.deepLoad && !indirect) {`. This makes it so it only calls `loadAll` on the node selected, and not all of it's children. I don't think this will cause problems, and it prevents unnecessary calls to `loadAll`.

As for other performance improvements, it seems like putting the call to `selectChildren` in setTimeout would help prevent the browser from locking up. However, then the `moreorless` function gets called too soon and doesn't show the correct number of groups. So I didn't put any changes related to that in here.