Add flow specific exceptions

The purpose is not to show exception trace to the end users, because this is very
confusing.  This patch works by grouping flow exceptions into different categories,
with this, we can add different handling for the different exception types, we also
use the error code to present localized error message to users

Change-Id: I38e080cf38ed4e06ec319f766d19bd35f29aef9b
Merge "Add flow specific exceptions"