Merge remote-tracking branch 'origin/nathan' into paul

* origin/nathan: (27 commits)
  Fixes for type-conversion Fixes for graph implementation Fixes for logging (doesn't fail on non-exception logging) Fixes for document token scanners for multi-value fields.
  Forgot the IDominoProperties interface!
  Fixed flipped boolean on IDominoProperties comparison
  More graph fixes and refinements
  Tweaks to reference counters. Fixes to graph implementation and auto-boxing.
  Fix for Graph element removal.
  Added better exception handling when wrapping column values.
  Added new signatures for Document.containsValue() and .containsValues()
  Added capabilities to the graph IEdgeHelper
  Improved Log file handling by forcing flush immediately on publish, so you don't have to wait for the JVM to shut down to see your stack trace.
  Fixed several problems with Graph. Create UserAccessException for Session.getDatabase() to ensure that we don't try to auto-log when a user doesn't have access to an NSF.
  Implemented Form.getModifiedNoteCount and Form.getSelectionFormula Fixed all Document.gets that return DateTime to allow for null when the legacy API would have returned null anyway eg: on a new Document.
  Set graph Element to re-apply properties to underlying Document on commit, since XPages recycling mimics a transactional Rollback.
  Implemented BigString, which automatically turns off the summary flag when saving.
  Fixed my fine line between stupid and clever in the implementation of auto-boxing for Java Number types.
  Fixed some auto-boxing for Java number objects. Implemented Document.getForm()
  Fixed inheritance problem in DominoElement. Fixed Xsp.properties-based godmode.
  Fixed default values in graph elements Cleaned up implicit object factory implementation for XSP
  Fixes to Graph implementation. Session wrapping in Factory made a little more bullet proof
  Numerous improvements to graph implementation to improve usability and extensibility
  ...
Merge commit '7ab60be04f322cf7fa4bc150977da5c5e9b40928' into paul

* commit '7ab60be04f322cf7fa4bc150977da5c5e9b40928':
  Fixed some deep problems with auto-boxing and graph caching to ensure that when a type is requested, it's delivered.
Merge remote-tracking branch 'origin/nathan' into paul

* origin/nathan:
  Fixed View.getAllEntriesByKey(Object) to use toDominoFriendly static method
  Added Xsp helper BackgroundRunnable, an abstract runnable that takes a thread context object to operate on
  Created new Null type for use in ConcurrentHashMap values. May possibly create an actual item storage for it in the future.
  Added new xsp.properties switch: Khan. Setting Khan modes makes the API better by turning on all available behavior fixes. Specifically...
  Added java.util.regex.Pattern and Formula as native datatypes for fields.
fix for sourceKeyFormula in DocumentSyncHelper
Merge remote-tracking branch 'origin/nathan' into paul
Merge remote-tracking branch 'origin/nathan' into paul

* origin/nathan:
  testing redirection of method sig to Collection version of toDominoFriendly
Merge remote-tracking branch 'origin/nathan' into paul

* origin/nathan:
  Made toDominoFriendly(Object, Base) handle Collections directly.
Diagnostics for View.getAllDocuments() done. Determine native API failure for DocumentCollection.merge(Object). Created temporary patch for View.getAllDocuments()

Also fixed view.getAllDocumentsByKey(Vector, boolean)
Further attempts to resolve view.getAllDocuments performance. Unsuccessful.
Merge remote-tracking branch 'origin/nathan' into paul

* origin/nathan:
  Further attempts to resolve view.getAllDocuments performance. Unsuccessful.
  Diagnostics for View.getAllDocuments() done. Determine native API failure for DocumentCollection.merge(Object). Created temporary patch for View.getAllDocuments()
Pushing up fix for Collections as parameter for getAllEntriesByKey - same as done for getAllDocumentsByKey
Fix for Iterator on getAllDocumentsByKey() where resultant collection is empty
Fix also applied to NoteIterator
Added comment to DocumentSynchHelper to elaborate on what the args parameter should contain and in what order
Fixed removeItem(). If it came from put(), fieldNames_ was null and threw error
Fixes to ClassLoader and various auto-boxing including Class storage in Items.
Merge remote-tracking branch 'origin/paul' into nathan
Database event listeners POC yo!
Okay, also implemented events for Document.save() :) Plus I left out some files from the last commit.
Okay, Document.remove() listeners implemented too. I'll admit it, I'm an addict...

By the way, no testing on any of this :)