Creates a generic javascript socket manager

This commit adds a generic socket manager, SocketManager, as an
interface on top of SockJS and Stomp.js. The item searching is also
updated to use this new socket manager.