Organize imports
Add EmptyEdgeMap to represent empty edge maps
Edge map updates

* Store the minIndex and maxIndex fields in DFA instead of DFAState, saving 8 bytes of memory per DFAState
* DFAState fields edges and contextEdges are now @NotNull
Avoid lock in DFAState.setContextSensitive
Move synchronization of getTarget and setTarget to edge map implementations
Address thread safety and performance concerns in ArrayEdgeMap
Address thread safety concerns with SparseEdgeMap
Additional performance tweaks in edge map implementations
Merge branch 'rm-contention' into optimized