First attempt at names fix #509, tests commented out

I believe this fixes this issue. See the before / after below.

I've removed the RequireQualifiedAccess behaviour as the sample case would be invalid if this attribute was true, and qualified access was not present.

Excuse my naivety, but I wasn't sure what to do about the failing tests. I've changed the function `getWrittenCases` in order for it to return the qualifiers of those cases, so the current tests on that function fail. If this is the kind of fix you were looking for, I will update the tests appropriately, and add some more.

Before
```fsharp
namespace TestNamespace

[<RequireQualifiedAccess>]
module M =
    type DU = | C1 of string | C2 of int | C3 of double

module N =
    type DU2 = | Case1 of int | Case2 of double
    let f x =
        match x with
        | Case1 i -> "Something"

    let g x =
        match x with
        | M.C1 s -> "Something"

    let h x =
        match x with
        | M.DU.C1 s -> "Something"

    let i x =
        match x with
        | M.DU.C1 s -> "Something"
        | M.C2 s -> "Something else"

namespace TestNamespace2

module M =
    let f x =
        match x with
        | TestNamespace.M.DU.C1 s -> "Something"
```

After

```fsharp
namespace TestNamespace

[<RequireQualifiedAccess>]
module M =
    type DU = | C1 of string | C2 of int | C3 of double

module N =
    type DU2 = | Case1 of int | Case2 of double
    let f x =
        match x with
        | Case1 i -> "Something"
        | Case2(_) -> failwith "Not implemented yet"

    let g x =
        match x with
        | M.C1 s -> "Something"
        | M.C2(_) -> failwith "Not implemented yet"
        | M.C3(_) -> failwith "Not implemented yet"

    let h x =
        match x with
        | M.DU.C1 s -> "Something"
        | M.DU.C2(_) -> failwith "Not implemented yet"
        | M.DU.C3(_) -> failwith "Not implemented yet"

    let i x =
        match x with
        | M.DU.C1 s -> "Something"
        | M.C2 s -> "Something else"
        | M.C3(_) -> failwith "Not implemented yet"

namespace TestNamespace2

module M =
    let f x =
        match x with
        | TestNamespace.M.DU.C1 s -> "Something"
        | TestNamespace.M.DU.C2(_) -> failwith "Not implemented yet"
        | TestNamespace.M.DU.C3(_) -> failwith "Not implemented yet"
```
This is something I'd like your opinion on. My original solution used pattern matching, but I wasn't sure how to handle the `| [] ->` case. I hadn't seen any examples of using `failwith` in this project, and I guessed that I shouldn't leave the unmatched pattern warning?

I may just remove the when guard and handle that as the empty list case, though I'd still be interested to hear your thoughts on the above.