Improve swaps error handling
* Add `SwapFailures` to `PlaceOrderResult`. Otherwise we're just getting the final results, but have no idea about swap attempts which failed. (@sangaman @kilrau please verify that we want this)
* Propagate meaningful errors from `Swaps.executeSwap` (taker side), and log them once in the higher layer (`OrderBook.PlaceOrder`). Same for the maker side.
* Calling `Swaps.getRoutes` and it's underlying `lnd.queryRoutes` throws exception on failure (when there's no channel, channel isn't active, channel local balance isn't sufficient, etc.). At the moment it's not handled properly and `lnd`s internal errors are returned ("target not found", "unable to find a path to destination").