lib: controller: function end_station_imp *at(size_t i) now uses lock_guard

Previous implementation used a plain mutex, which could be left in a locked state
if the .at(i) operation caused an exception.
Merge pull request #138 from andrew-elder/staging

lib: controller: function end_station_imp *at(size_t i) now uses lock_guard