Used FSharpx.Core instead of Result<'TSuccess, 'TFailure> – refactored a nested pattern matching

Related to #6, and more specifically to this [comment](https://github.com/GreanTech/Qaiain/issues/6#issuecomment-51312114).

This Pull Request replaces the custom `Result<'TSuccess, 'TFailure>` type with the built-in `Choice<'T1, 'T2>` – the monadic type of the [`choose`](https://github.com/fsprojects/fsharpx/blob/9ad7ff3024b1cc90fd252520272421920c1f4017/src/FSharpx.Core/ComputationExpressions/Monad.fs#L806-809) Computation Expression.

Then it composes the handling of large messages in `handle` function using that Computation Expression, so we can avoid the nested pattern matching.

-----

As [FSharpx.Core](https://www.nuget.org/packages/FSharpx.Core/) has been included in source control, the entire diff is big – essentially there are 2 files to look at: *Program.fs* and *MailTests.fs*.

Similarly to the other [note](https://github.com/GreanTech/Qaiain/pull/27/files#r16226840) I added, FSharpx.Core defines this Active Pattern in its [source code](https://github.com/fsprojects/fsharpx/blob/cb9942ff7fb7f8a463070cc1c216b0170c399e28/src/FSharpx.Core/ComputationExpressions/Monad.fs#L772-775).

In this example, instead of writing:

```f#
match queue |> AzureQ.dequeue with
| Some(msg) ->
    match msg.AsString |> handle with
    | Choice1Of2 _ ->
        queue.DeleteMessage msg
        ERROR_SUCCESS
    | Choice2Of2 f ->
        f |> toString |> Console.Error.WriteLine
        ERROR_INVALID_DATA
| _ -> ERROR_SUCCESS
```

FSharpx.Core uses the Active Pattern and makes the Pattern Matching more readable:
```
match queue |> AzureQ.dequeue with
| Some(msg) ->
    match msg.AsString |> handle with
    | Success _ ->
        queue.DeleteMessage msg
        ERROR_SUCCESS
    | Failure f ->
        f |> toString |> Console.Error.WriteLine
        ERROR_INVALID_DATA
| _ -> ERROR_SUCCESS
```