Merge pull request #258 from CruGlobal/EVENT-79

Event 79
Fix NPE
 - amount could be null, but that is not checked
Add support for additional expenses
 - enum type
 - `TotalDueCalculator` now checks for them adds them to results
add some logic to make sure the user adding payments other than CREDIT_CARD is an admin
 - note this may change when front end adding of scholarships is enabled
add enum type to database
add logic to ensure admin is adding payment types other than credit card
Fix error reporting for payment resource.
 - actually return 400 and 401 when appropriate
Add AdditionalExpense class to `Payment`
update validation
Update tests in regards to previous commit
 - 400 and 401 returned instead of 500

 - also add test for addtional expense
remove try/finally blocks
 - the tests clean up after themselves and i missed this while cleaning up other classes
updates to `PaymentProcessor`
 -reorganized logic based on the type of payment
 -non credit card/cc refunds don't need extra attention, they can just be saved
 -except for refunds, care should be taken so that too much doesn't get refundedy
Improved logic for processing and saving payments
 (this should have been in EVENT-84, but i goofed)
Correct error in addPreviouslyRefundedAmount
- correct logic
- create test
(verify this still works)
Conflicts:
	src/main/java/org/cru/crs/api/process/PaymentProcessor.java
	src/test/java/org/cru/crs/api/PaymentResourceFunctionalTest.java
remove try/finally
Change UUID var name

Conflicts:
	src/main/java/org/cru/crs/api/process/PaymentProcessor.java