Splitted code and setting objects prototypes

This fix issue #6. Filter and index are set on the walk object so they don't move around, only ones are the ones requiring to change on the call stack (currentIndent and seen), this could be changed to work on a dedicated stack on walk object so Array and Object prototype functions are as in the standard. Also, I would remove the indent parameter since the Javascript standard is two spaces per indent level, and change currentIndent to be this way an integer. I would also remove this parameter too, and make it to start always on zero.