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*.

AFAICT, what you propose is:
```diff
diff --git a/Src/Qaiain.CommandLine/Program.fs b/Src/Qaiain.CommandLine/Program.fs
index 2b83dc1..ca6f88f 100644
--- a/Src/Qaiain.CommandLine/Program.fs
+++ b/Src/Qaiain.CommandLine/Program.fs
@@ -3,6 +3,9 @@ open System.IO
 open Microsoft.WindowsAzure
 open Microsoft.WindowsAzure.Storage
 
+let Success = Choice1Of2
+let Failure = Choice2Of2
+
 module AzureQ =
     let dequeue (q : Queue.CloudQueue) =
         match q.GetMessage() with
@@ -138,13 +141,13 @@ module Mail =
     let rec handle (getMessage) (deleteMessage) (sendEmail) msg =
         match msg |> parse with
         | EmailMessage.EmailData mail ->
-            mail |> sendEmail |> Choice1Of2
+            mail |> sendEmail |> Success
         | EmailMessage.EmailReference ref ->
             choose {
                 let! message = ref.DataAddress |> getMessage
                 do! message |> handle getMessage deleteMessage sendEmail
                 do! ref.DataAddress |> deleteMessage }
-        | _ -> UnknownMessageType |> Choice2Of2
+        | _ -> UnknownMessageType |> Failure
 
 let queue =
     let storageAccount =
```
If that's the case, then the `Success` and `Failure` values are bound correctly and the code compiles.

-----

But, when I run the tests the `queue` and `blob` values are also bound which means I have to include the `appSettings` section in the unit tests' app.config file:
```xml
  <appSettings>
    <add key="storageConnectionString" value="" />
    <add key="queue-name" value="qaiain"/>
    <add key="messages-container" value="messages"/>
    <!--Email settings-->
    <add key="email-host" value="" />
    <add key="email-port" value="" />
    <add key="email-username" value="" />
    <add key="email-password" value="" />
  </appSettings>
```

And then in the output, I get something that looks like:
```
Output from Grean.Qaiain.UnitTests.MailTests.HandleDeletesCorrectMessageForPointerMessages:
  Getting "storageConnectionString" from ServiceRuntime: FAIL.
  Getting "storageConnectionString" from ConfigurationManager: PASS (UseDevelopmentStorage=true).
  Getting "queue-name" from ServiceRuntime: FAIL.
  Getting "queue-name" from ConfigurationManager: PASS (qaiain).
  Getting "storageConnectionString" from ServiceRuntime: FAIL.
  Getting "storageConnectionString" from ConfigurationManager: PASS (UseDevelopmentStorage=true).
  Getting "messages-container" from ServiceRuntime: FAIL.
  Getting "messages-container" from ConfigurationManager: PASS (messages).
  Getting "email-host" from ServiceRuntime: FAIL.
  Getting "email-host" from ConfigurationManager: PASS (127.0.0.1).
  Getting "email-port" from ServiceRuntime: FAIL.
  Getting "email-port" from ConfigurationManager: PASS (4567).
  Getting "email-username" from ServiceRuntime: FAIL.
  Getting "email-username" from ConfigurationManager: PASS ().
  Getting "email-password" from ServiceRuntime: FAIL.
  Getting "email-password" from ConfigurationManager: PASS ().

21 passed, 0 failed, 0 skipped, took 1.72 seconds (xUnit.net 1.9.2 build 1705).
```

So, I think, it makes sense to include the `Success` and `Failure` values at least inside the `Mail` module and avoid the hassle.