Conor/barn updates

A few changes:
1. Refactor barn to allow easier error handling
2. Add a channel selector for failing over to a backup node.

@johnglover