add HSequential type to rule HVec, HSeq and HList all

Signed-off-by: Ambrose Bonnaire-Sergeant <abonnairesergeant@gmail.com>
Towards HSequential + bug fixes

- Fix unparse of HVec et al. drest args
- Move HSequential case to the top of `empty?`
- Fix HSequential/HVec cs-gen cases with classes on the right
- Fix HVec subtyping
  - rest/drest now contributes to upcasted APersistentVector
  - also correctly check for presence of rest/drest to calculate CountRange
    ancestor
  - add unit test
- Add frees method to HSequential
- add subtyping case for HSequential upcasting a HSequential on the left
- add test

Signed-off-by: Ambrose Bonnaire-Sergeant <abonnairesergeant@gmail.com>
add {HVec,Hlist,HSeq}->HSequential

Signed-off-by: Ambrose Bonnaire-Sergeant <abonnairesergeant@gmail.com>
add rest/drest support in HeterogeneousSeq, and change result type of *check-fn-method1-rest-type* from HSequential to HeterogeneousSeq type variable in HSequential is remain unsolved

Signed-off-by: Ambrose Bonnaire-Sergeant <abonnairesergeant@gmail.com>
Fix subtype cases for HSequential

Signed-off-by: Ambrose Bonnaire-Sergeant <abonnairesergeant@gmail.com>
Fix cs-gen cases for HSequential.

Signed-off-by: Ambrose Bonnaire-Sergeant <abonnairesergeant@gmail.com>
rest argument must be nilable non-empty seq.

Recur rest arg should reflect this, I don't we gain anything from using
HSeq here over ISeq.

Signed-off-by: Ambrose Bonnaire-Sergeant <abonnairesergeant@gmail.com>
changelog