tidied weapons console

moved the weapon firing and decoy firing to own methods
when firing a smartbomb the animation wont trigger until a signal (/system/targetting/smartBombOk) is recieved from the game. This is so that it cant be used when weapons are not deployed
comments, added tests for hardwareevent stuff
hardware abstraction

started to abstract hardware stuff to HardwareController.java (and subclasses of it)
Keypad entry is still a bit odd, need to test this in the an as I cant remember if the engineer keyboard sends keypad numbers or top row numbers when typing

all hardware events are sent using HardwareEvent.java. Not happy with some of it but its a start
added weapons retract/deploy sounds to tactical