Decoupling of funnel gui and logic components

funnel2visual is used to interact between the logic and the visual parts of the funnel. funnel2visual adds callback methods to the funnel class, which are triggered, if the GUI of the funnel (funnelVisual) needs to be updated. These callbacks include adding and removing music items, voting on items and pushing an item to player to be played next.
The changes are required in order to build a second host system, which can be used inside the vehicle on the IVI system. For that reason visual classes (visual, visualPlayer and visualFunnel) has been separated into different files.

Jira-Issue: APPARTY-36