changed to timer, added timer interval argument.

Not much of a change just from idle handler to timer to avoid excessive cpu load. It defaults to 10ms plenty fast enough to handle most needs but if someone is sending crazy amounts of data they would probably want to set it to 1 and even at 1 my cpu load was 2-3% on my BeagleBone Black. One thought would be to process more than one message if multiple existed but that seems like it could create other issues so for now I am just going to call it good.