Streamlining and minor cleanup of code in the PrettyNaming module.
Streamlining and minor cleanup of code in the PrettyNaming module.

closes https://github.com/Microsoft/visualfsharp/pull/578

commit 7e1c8410a3df45df62830f1dd29df18ac89b69a6
Author: latkin <latkin@microsoft.com>
Date:   Wed Aug 12 14:58:45 2015 -0700

    Fix logic in TryChopPropertyName

commit cf72133737675acbba6856477c6e24d9e0577da4
Author: Jack Pappas <jack-pappas@users.noreply.github.com>
Date:   Sun Aug 9 15:54:28 2015 -0400

    Streamlining and minor cleanup of code in the PrettyNaming module.
    Compilation and decompilation of operators is now memoized for custom
    (non-built-in) operators to improve performance.
    Lifted creation of lists (now arrays) in the IsInfixOperator function
    so they aren't re-created (potentially) on each function call.
    Simplification to the TryChopPropertyName function per @latkin's suggestion.
    Optimized the recursive function which performs the decompilation within 'decompileCustomOpName' so it's tail recursive and avoids allocating substrings and some Option<_> instances.

dsyme/fsharp,brettfo/visualfsharp,Jand42/FSharp.Compiler.Service,rojepp/FSharp.Compiler.Service,In2TheWild/fsharp,fsharp/fsharp,fsharp/fsharp,ncave/FSharp.Compiler.Service,forki/FSharp.Compiler.Service,forki/FSharp.Compiler.Service,dsyme/fsharp,rojepp/FSharp.Compiler.Service,syeerzy/visualfsharp,eloraiby/fsharp,syeerzy/visualfsharp,cloudRoutine/FSharp.Compiler.Service,dsyme/fsharp,rneatherway/FSharp.Compiler.Service,alfonsogarciacaro/FSharp.Compiler.Service,alfonsogarciacaro/FSharp.Compiler.Service,matthid/FSharp.Compiler.Service,syeerzy/visualfsharp,In2TheWild/fsharp,BillHally/FSharp.Compiler.Service,eloraiby/fsharp,brettfo/visualfsharp,wk-j/fsharp,0x53A/FSharp.Compiler.Service,0x53A/FSharp.Compiler.Service,Heather/fsharp,mafiya69/fsharp,brettfo/visualfsharp,ncave/FSharp.Compiler.Service,sergey-tihon/FSharp.Compiler.Service,brettfo/visualfsharp,vasily-kirichenko/FSharp.Compiler.Service,rneatherway/FSharp.Compiler.Service,vasily-kirichenko/FSharp.Compiler.Service,forki/FSharp.Compiler.Service,sergey-tihon/FSharp.Compiler.Service,rojepp/FSharp.Compiler.Service,Heather/fsharp,yever/FSharp.Compiler.Service,mafiya69/fsharp,yever/FSharp.Compiler.Service,sergey-tihon/FSharp.Compiler.Service,matthid/FSharp.Compiler.Service,brettfo/visualfsharp,wk-j/fsharp,vasily-kirichenko/FSharp.Compiler.Service,0x53A/FSharp.Compiler.Service,dsyme/fsharp,cloudRoutine/FSharp.Compiler.Service,syeerzy/visualfsharp,BillHally/FSharp.Compiler.Service,dsyme/fsharp,alfonsogarciacaro/FSharp.Compiler.Service,dsyme/FSharp.Compiler.Service,dsyme/FSharp.Compiler.Service,fsharp/fsharp,syeerzy/visualfsharp,Jand42/FSharp.Compiler.Service,dsyme/fsharp,syeerzy/visualfsharp,dsyme/FSharp.Compiler.Service,ncave/FSharp.Compiler.Service,Jand42/FSharp.Compiler.Service,cloudRoutine/FSharp.Compiler.Service,brettfo/visualfsharp,dsyme/fsharp,matthid/FSharp.Compiler.Service