Expose getJobParameters to subclasses

Fix for 
https://jira.springsource.org/browse/BATCHADM-176
Refactored to copy checkpoint object before persisting to prevent side effects when batch artifacts reuse checkpoint objects
Refactored to use SerializationUtils and cleaned up throws clause
Updated retry logic for a JSR configured processor
Fixed JSR-352 skip listener processing
General cleanup etc around properties and substitution

* Move pre-context init of JobParameters support out of ThreadLocalClassloaderBeanPostProcessor
* General cleanup in BatchPropertyBeanPostProcessor, move artifact type checking into classifer class, minor naming updates
* Refactor BatchPropertyContext to use different data structures for different types of properties and provide named accessors
* Remove path based artifact scoping support
* Make sure expressions are parsed when resolving properties directly from XML
* Update property tests
* Move registration of jobProperties bean into the JsrNamespaceUtils
BATCH-2095: Change JSR version of Split to execute flows in separate threads.
BATCH-2005: Implement JSR RetryListener along side Spring Batch's RetryListener
Update schema-derby.sql

Fix JOB_CONFIGURATION_LOCATION field (should be DEFAULT NULL or NOT NULL)
BATCH-2100 Add CONTRIBUTING.md file
* changed keyword from "type" to "engine"
* changed from MyISAM to InnoDB
* fixed property "platform" from "oracle10g" to "mysql"
BATCH-2053: Allow overriding step scope proxy-target-class flag on bean
level with aop:scoped-proxy
Catch BeanCreationException on start/start of a job in JsrJobOperator, rethrowing it as a JobStartException