Made exploit and payload serializable

Added: The exploit and payload classes are now serializable using JAXB.
Split programs into gui/shell-categories

Added: There're now different program executor categories (shell and desktop). You can only start shell programs in a shell session and desktop programs in a desktop one.
MountException & OutOfSpaceException no longer unimportant

Added: Thrown mount- and out of space exceptions are no longer a subtype of RuntimeException. YOu need to catch them properly.