Refactored key binding

This allows keys to be bound from outside the class.
Documentation: Input and RealTimeInput
Added new props to ClientConfig and added serialize
Properly closing filesystem at client destruction