Continued development on sockets.

Created query_loop method that actively pulls data from specified port. This means that we don't need a time.sleep before grabbing data.

Problem to solve: I am unclear on how the sim900 deals with multiple commands. I think it puts them in the stack. This is a problem when I call first SNDT (ask to put data from some module in the buffer) and then GETN (give me that data) because GETN gets popped first and gives empty data (#3000). The solution I have found so far is adding in a time.sleep between SNDT and GETN... but this is what I have been trying to avoid.

Putting together a comprehensive data collection function