refactored Test to use an instance variable of it instead of static methods

made it so that #run runs user code with the array inputs as predefined variables
made it so that #test runs test code and provides a method $main which contains the submitted code with paramaters inputs

varaiables available during test are

- $test (contains test functions)
- $userOut (BinaryBuffer of what the user types in System.out)
- $main (A method contianind the submitted code)
- $userErr in case something was printed to the sterr

to get userout you write $userOut.toString()
to reset buffer $userOut.reset()

$test.pass()
$test.fail()
$test.expect()

are predefined methods for testing user code
Discovered that infinit loops didn't stop
now runner terminaltes method within timeLimit without exceptions

however this comes at the cost of using thread.stop() which is not idea, so the assumption is made that students are more likely to write infinit loops then reserve system resources

fixed bug with captuing test out when there's a new line
now captures everything between the TestOut tags
updated package.json
fixed regexp that captures test output