Rework Payment exception handling for state machine operation and interraction with thread dispatcher code.

The state machine code rely on OperationResult and OperationException to correctly route to the next state so it crucial to
throw correct exception to land in the correct state.

Fix erroneous file deletion
Payment SQL renaming
Remove payment state_name NON NULL constraints (code is working that way)
Payment tests fixes (Ongoing Payment stability)
Merge branch 'master' of github.com:killbill/killbill

Conflicts:
	payment/src/main/java/org/killbill/billing/payment/core/PaymentGatewayProcessor.java
	payment/src/main/java/org/killbill/billing/payment/core/PaymentMethodProcessor.java
	payment/src/main/java/org/killbill/billing/payment/core/sm/DirectPaymentAutomatonRunner.java
	payment/src/main/java/org/killbill/billing/payment/core/sm/DirectPaymentOperation.java
	payment/src/main/java/org/killbill/billing/payment/core/sm/OperationCallbackBase.java
	payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java
Add paymentMethodExternalKey