Allow subprocesses to work in record mode

Signed-off-by: Junjie Mao <eternal.n08@gmail.com>
Support marking test cases that are expected to fail

As an example, a line like this in a testspec:

    @failin i386 arm

says that the test case should fail when executing on i386 and arm, but
should not when on amd64.

Signed-off-by: Junjie Mao <eternal.n08@gmail.com>
Reformat test report

The changes include
  * Move the summary to the top
  * Add unexpected pass/fail count into the summary

Signed-off-by: Junjie Mao <eternal.n08@gmail.com>
Merge branch 'mjj/amd64' of https://github.com/chyyuu/ucore_plus into mjj/amd64