allow indentation for any number of spaces as long as it's consistent

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.

Tabs are still interpreted as 4 spaces, although they should probably behave like in python which is to round to the nearest 8 spaces.