Port: Incomplete work on SPI

Not sure if SPI is going to look like this in the .NET port, but I
started on the classes anyways. Also, fixed a dumb mistake in
IMutableBits
Port: Add NamedThreadFactory
Port: NumericUtils
Port: OpenBitSet
Merge remote-tracking branch 'jamesblair/lucene_4_3_0' into lucene_4_3_0
Port: OpenBitSetDISI, OpenBitSetIterator
Port: Add PagedBytes, DataInput, DataOutput

Also ported IndexInput, IndexOutput
Merge remote-tracking branch 'jamesblair/lucene_4_3_0' into lucene_4_3_0
Port: Add PrintStreamInfoStream
Port: PriorityQueue
Port: Add recycling byte/int block allocators
Port: Add RollingBuffer
Port: Add SentinelIntSet

Remove ScorerDocQueue, SimpleStringInterner, StringInterner
Port: Add SetOnce
Port: SetOnce, SmallFloat, StringHelper

Also added StringTokenizer to Support
Big Port: UnicodeUtil, byte to sbyte

Java's byte is signed, so changed ported code to use sbyte instead.
Port: Version
Port: Placeholders for VirtualMethod and WeakIdentityMap
Port: Util.Automaton in progress
Port: Automaton/SortedIntSet