ADD: Some NAPI-Experiments
Merge remote-tracking branch 'remotes/github-official/nathan' into roland
Merge branch 'roland' into manfred
ADD: optimized reference caching from Nathan
Merge branch 'nathan' of https://github.com/OpenNTF/org.openntf.domino into roland

# By Nathan T. Freeman
# Via Nathan T. Freeman
* 'nathan' of https://github.com/OpenNTF/org.openntf.domino:
  Checking for zero hits on terms in indexDatabase
  Removed Gremlin Groovy because we need all of groovy!
  Added Gremlin Groovy
  Made Tinkerpop libraries external, added Pipes and Gremlin as well. Continued improvements to the IndexDatabase and DocumentScanner to improve performance and reliability. Addition of .toItemFriendly to ensure we correctly convert to Item-writable values Safety check on DocumentCollectionIterator to avoid long-running error loops Improvement in DominoReference and DominoReferenceCache to force re-wrap of queued References. If a reference was pulled from the cache after it was queued, it drops its lotus object pointer so that it won't recycle it.
  Addition of DocumentList class to add always-sorted, Externalizable implementation of DocumentCollection Fix for Document.isNewNote() Switched IndexDatabase to use DocumentSorter to order by modification date rather than by noteid Addition of Database.createMergableDocumentCollection() to always return a DocumentCollection that allows merge, intersect and subtract operations instead of ignoring them Change of DateTime implementation to use java.util.Date as local storage object instead of Calendar object, making it substantially more memory efficient. Modifications to DocumentScanner to make various tracking Maps able to be turned on and off using methods like .setTrackTokenLocation(boolean) Changed DocumentSorter to use Arrays.sort() rather than SortedSet implementations, making it around 80% faster. Added Externalizable implementation to DocumentSorter so that results can be persisted. Set DominoReferenceCache to NOT process the queue on every .get() request, but only on .put() requests Modified DominoReferenceCache to prevent auto-recycling of the currently requested object's *parent* as well as the object itself. Added "@accesseddate", "@modifieddate" and "@createddate" to accelerator methods for Document.get() to bypass formula evaluation and directly return java.util.Date rather than DateTime Changed Document.save() implementation so that new Documents with no fields set are still saved. Previously, if they weren't dirtied by having an Item changed in some way, they weren't saved at all. Improved reliability on MIMEBean header checks Added DocumentCollection.toNoteIdArray with improved implementation that maintains ordering on sorted DocumentCollections Made MIMEHeader resurrectable, though this is probably no longer needed with other reliability improvements. Added LegacyCollectionPerfTest runnable to test performance of various approaches to document iteration. Increased implicit delay length for DominoThreadFactory due to collision crashes from performance improvements! (first world problem) Added new utility methods to TypeUtils to convert Collections to primitive arrays, which improves performance and memory footprints

Conflicts:
	org.openntf.domino.plugin/.classpath
	org.openntf.domino.plugin/.externalToolBuilders/LibBuilder.launch
	org.openntf.domino.plugin/libbuild.xml
FIX: Counters should be correct now. Add small test case to test GBC behaviour.
Clean up & comments
ADD: atFormula.jjt
ADD: dependent files
Intermediate state
refactored
refactored toItemFriendly & toDominofriendly (removed unneccessary/redundant code)
optimized session.convertMIME handling
REMOVED: the experimental NAPI stuff. (doesn't give the expected performance boost and makes code unreadable)
FIXED: appendItemValue
IMPROVED (hopefully): replaceItemValue + auto serialization
Merge branch 'nathan' of https://github.com/OpenNTF/org.openntf.domino into roland

Conflicts:
	org.openntf.domino.plugin/src/org/openntf/domino/xsp/napi/NapiFactory.java
	org.openntf.domino/src/org/openntf/domino/impl/Document.java
	org.openntf.domino/src/org/openntf/domino/thread/DominoReference.java
	org.openntf.domino/src/org/openntf/domino/utils/DominoUtils.java
Merge remote-tracking branch 'github-official/paul' into roland

Conflicts:
	org.openntf.domino.xsp.update/site.xml
	org.openntf.domino/MANIFEST.MF
ADD: Sanity check, so that serialisation won't overwrite name/reader/author fields
the default behaviour of put is, that it will serialize the object always if it is not compatible with a normal field.
the behaviour of replaceItemValue is now, that it will only serialize compatible objects if they exceed the 32k limit.
this can be controlled with AUTOBOX_ALWAYS.

also improved the formula stuff in Document.get
Merge remote-tracking branch 'github-official/jesse' into roland
Continue working on formula parser.
Fixed some issues in Document