Corrected issue with serialisation of contacts (no default constructor),
added setters/getters on the interface to set members.
Changed the way the id gets stored in the ContactImpl class, now
consistent on load/save rather than being statically incremental.
White space/readability changes in ContactManageImpl and DataInterface.
Complete refactor of user interface, options now seperated into
individual enums, these implement a common base interface, entry point
has changed to main menu.
Common print and user input methods added to reduce duplication of code.
Refactored data interface a bit, added methods to get a single contact
and multiple contacts based on ID.
Updated ContactManagerImpl to use methods.
Removed redundant return from UserInterface.
Added search method for contacts based on string name.
Updated ContactManagerImpl to use new method.