Add Java API to invoke C++ implementation. This helps us expose tokenizers only, without using LLM generate. Ideally, we use Java built-in JNI, to minimize dependencies.