Refine Object[] method paramter => Object ...
Using Class object instead of Class Name to simplify test, code and message
Add new Errors and add corresponding error message Parameter description
Rename getFunctionMetadata into getDeclaredFunctionMetadata since this method only returns declared function metadata
Add new Errors and redefine the style of printing class
Fix old Tests Error: State with multiple functions referring same transition
Fix old Tests Error: Overriding super Initial state without re-declare @Initial
Added tests for single transition reference on a state's functions and state overriding super initial state
Expose getDeclaredFunctionMetadata(Object functionKey) and renamed getFunctionMetadata
Added logic to verify duplicate transition reference on multiple functions on a state metadata inheritance hierarchy.

Besides, Refactor getPossibleTransitions and getDeclaredFunctionMetadata
Verify Ignoring @Initial annotation while extending a super initial state