Patch value length bugfix; value counter
Patch value length bugfix; value counter

This patch fixes a bug which occurs when a patch contains a vector which
exceeds the length of the variable being patched.  This would cause the
next variable name to be replaced with the first exceeding value.

This was resolving by counting the number of remaining values, and only
applying the patch if within the bounds of the original vector.

This patch still does not address the issue of applying vector elements
which are not present in the patch.

To support this fix, the `count_values` function has been added, which
attempts to count the current vector's number of remaining values ahead
of the current token.  The test is still very nascent and probably needs
improvement.

marshallward/f90nml,marshallward/f90nml