New BussTUC plugin and several utils and fixes.

Add BussTUCPlugin with support for BusTUC by IDI. Add jSoup-based website-retriever. Add utils for general purpose use. Clean some junk. Fix settings file not being generated if not existing.
Why are these "rediculous" exceptions? I don't see people putting try catch(ArrayIndexOutOfBoundsException e) in index operations, yet they cause runtime exceptions. If you use it right, it won't crash your program.

By using reflection and specifying strong typing for calling the method, you ensure readability in the plugin. Using an interface with Object... args would lead to weaker typing, and you would have to check each argument for it's specific type, further cluttering the code and causing method-handling on a by-args-length level.

The reflection part is tucked away in this object, the end user won't have to deal with it if it doesn't wish to.
Rejecting something because of high-burden of understanding when you don't have to look at it (or should not have to) is not a good argument. Every single serializing-utility like Gson etc uses reflection.