Refactor the process_station_measures to work on a per station key basis.

This lets us remove a bunch of the dictionaries and state tracking and make sure we only check the blacklist and free space once per station.

@graydon inspired me to further refactor this code :)