increase indentation options in kv language

previously, the kv language only supported 4 spaces or a singe
tab (which is translated to 4 spaces). This commit updates the
language parser to determine the number of spaces for indentation
based on the first indented line. Thus, the language parser should
only care if the kv file is consistant, rather than being tied to 4
spaces.
add tests for new language spacing options