implement vanilla console

it can't print the test name yet...
extract NonEmptyList.iter
remove build event
refactor
add TestResult type and implement print test name

This commit changes the type of the test computation expr from
`AssertionResult<'T>` to `TestResult<'T>`.
If the type of the right hand side of `let!` is the `TestResult<'T>`,
then the `Source` method gets the value of the `AssertionResult`
property and passes it to the `Bind` method.
So always the type of the left hand side of `let!` is the `'T`.
(`AssertionResult<'T>` is unwrapped in the `Bind` method.)
Now, we can specify both `TestResult<'T>` and `AssertionResult<'T>` at
the place of the right hand side of `let!`.

```fsharp
let! x =
  Success 10 // OK.
             // The type of "Success 10" is AssertionResult<int>.
             // The type of "x" is int.
let! y =
  test "" { return "yes" } // OK.
                           // The type of "test ..." is TestResult<string>.
                           // The type of "y" is string.
```
devide Writer

The old design does not support to print progress.
The new one support it.

Raw Level APIs
==============
Writer: write string to the TextWriter.
IFormatter: convert the argument to IWritable.
IWritable: receive the TextWriter and write to it.

High Level APIs
===============
Printer: hold one Writer and one IFormatter.
         provide print methods for one type.
Reporter: hold three Printers.
          provide report methods for each purpose.
add --no-progress option
add usage
support TestResult<unit> list
support TestResult<unit>[]
support TestResult<unit> seq
sync master
Merge pull request #11 from pocketberserker/impl-simple-console

implement vanilla console