Fix build warning in Pair (unchecked cast)

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
POM changes: Add versions for jar-plugin and assembly-plugin

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Beginnings of proper CLI argument parsing

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Major refactor of Token to remove generics.

Nearly every file was touched, in a lot of cases just replacing generic bounds.

TokenListCloner and the lowercase preprocessor removed as both were very
dependent on the old-style Tokens

New tokens maintain a state of what type of token they are. A list class was
added specifically for them which ensures that only tokens of a given type can
be contained within the list. This new list implements the functionality of the
old TokenListCloner.

Removed Smith-Waterman tests, which will be rewritten in the future - they were
not particularly comprehensive or good anyways.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Reimplement LowercasePreprocessor with appropriate tests

Small changes to algorithms to ensure that submission token list types match

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Added ability to create immutable token lists

Use this to remove a clone() operation from Submission, which should speed
things up slightly (and use slightly less memory)

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Fix small warnings as flagged by IntelliJ

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Add Maven compiler linting to catch warnings.

Fix a few warnings that cropped up after implementing this.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>