std.conv: parse not handling some cases

See the unittest additions for unrecognized error cases.

Refactored to use control flow instead of flags. Small efficiency improvement. Eliminate a couple goto's. Eliminated unnecessary `static if`.