Adding "target" element to CircuitBreaker annotation.

This element can identify throwables to be considered . Since this could cause
some conflicts with "ignore" element, I've added a check in
DefaultFailureInterpreter to make sure only one of them is set. Basically,
the rule is:
- If both 'ignore' and 'target' fields are empty, all throwables will be
considered failures.
- If only 'ignore' field is set, all throwables except ones specified in 'ignore'
field will be considered failures.
- If only 'target' field is set, all throwables specified in 'target' field
will be considered failures.