Changed ByteableComposite to Token and added a method to Locks to get cached TLocks
remove get method since the caching happens in TLock, we can just call TLock directly to get the lock we want
Merge branch 'develop' into feature/transactions
Changed Token.java to Composite.java
Improve search performance

Only seek for search indexes that are included in the search query.
This will improve search performance by ensuring that the SearchRecord
isn't too large and does not take too much time to load into memory
Make TLock use Token
Grab a TLock for each API method in the Engine
Do not use a max size for the TLock cache

Using a max size means that its possible for a lock to be evicted while
it is still being held. If that is the case, then it is possible for
a request using a Token will return a new TLock instance and we'll have
a situation where a deadlock can occur or worse, concurrent modification.
To prevent this kind of situation, we should use softValues with this
cache and only evict entries as necessary
Revert "Do not use a max size for the TLock cache"

This reverts commit 7c1c33078e7812bfe0427f386a37fe8fac93523f.
Make the internal TLock configurable via some pref
Add default values to pref files
Add rubric for transaction_concurrency_level pref
Added logic to use time based eviction of TLocks from the cache and provided methods for callers to check if they have a stale lock
set system property for each test
Set TLock static variables correctly if we are in a test scenario
more tests
delete trailing newlines
Fixed a bug where SearchRecords were not properly populated with multi term queries
added launch config for CaSH
javadoc update