changed the type of error value, from HNTaskError to Any.

In fact, 'HNTaskError' was introduced to determine the error was exist or not.
Because in early beta, testing an optional with type 'Any' always returned true, even if the value was nil.
class method 'newTask()' is changed to convenience initializer.

Now we can make a new Task by `let task = HNTask { (resolve, reject) in ... }`.