low-level queries

This pull request implements the ability to do low-level queries given a controller instance. The query function takes a predicate and the controller struct and will query all switches in the NIB for packet and byte counts of flows that match the predicate.