WL-3215 Make sure load order is consistent.

Recently we had an issue where the JARs in a component were getting loaded in a different order based on the order of files in the filesystem. This caused a tool to break.

We now sort the list of files returned from the filesystem to be alphabetical and then load them in that order. This should result in predictable deployments.

I've also updated the loading of components to simplify the code and added a test to check that components are loaded in alphabetical order. These tests are hard to make fail as there isn't an easy way to force the list of files be in a non alphabetic order.

The Component/Jar test classes could do with a little refactor so that you can create a component without anything in the classes folder, but I've spent enough time on this for now.