Consistent use of ch to avoid array indexing more than once.

Replace the couple places where the string character array was being indexed twice in the same block instead of the character being cached locally. Cleanup formatting of the switch statements to follow conventions.
MIT licence
Add more extensive logging to sdb.
Merge pull request #714 from IDisposable/patch-2

Consistent use of ch to avoid array indexing more than once.
Less cascading errors
Add clone for error expression. Fixes #13443
Don't hide internal error exception when reported cannot show it.
Fix an assert in constrained_gsharedvt_call_setup (), mono_class_interface_offset () returns a -1 on failure, not 0.
Remove #ifdefs from MonoTrampolineType, to prevent cross-compilation problems where the cross compiler and the target runtime have different defines. Also do a sanity check at aot load time.
Add error handling to calls of mono_reflection_create_custom_attr_data_args (). Fixes part of #13435.
Add enum ActiveDirectoryRole
Add enum DomainMode.cs
Add enum ForestMode
Add enum LocatorOptions
Add class ReplicationNeighbor
Add enum TrustDirection.cs
[sdb] Fix round tripping of vtypes with boxed fields. Fixes #12354.
Add class ReadOnlyStringCollection
Fix Syscall.readlink() for non-ascii targets

Syscall.readlink() currently returns an integer indicating the number of
bytes in the link. As buf contains chars, this value is useless if the
target contains non-ascii characters.

This commit creates a new overload which uses a byte array instead of a
StringBuilder and rewrites the old overload to return the number of chars
instead.

Fixes #11778 and #9611
Add class AttributeMetadata
Add class AttributeMetadataCollection