Improve binding a String to a persistent instance reference

Fixes a failing hibernate-plugin test
improve how the binder identifies if a property is a domain class reference

A test from the hibernate plugin was failing because a belongsTo back
reference appears to be of type Object when inspecting
metaClass.getMetaProperty('propertyName').type.
GRAILS-10101 - date format errors should result in binding errors
reorganize data binder logic

move white list and black list checking up earlier in the process
better separate the handling of indexed properties
only retrieve the metaProperty once
GRAILS-4643 - support binding a command object to a domain class
GRAILS-4643 - use a BeanMap instead of retrieving obj.properties for the RHS of data binding
don't retrieve the value from the binding Map until/unless it is needed

Using Map.each { key, value -> … was retrieving every value from the Map, even those that aren't needed.  For normal Maps this isn't an issue but to optimize the use of BeanMap (and potentially other lazy Map types) this change defers retrieving the value from the Map until/unless it is needed.
Aether: improve error handling in case of internet connectivity issues (such as a proxy or no internet connection)
Aether: fix for GRAILS-10097 "Aether's dependency resolution does not work behind a proxy"
upgrade to jline 2.10, jansi 1.10 and jna 3.5.2