Update teams discovery, team name and league parsing code

For some reason the first option "-- Select Team --" was being parsed as
if it were a team, even though it was supposedly excluded with
slice(1..-1). Because it didn't have parens in it, the code was crashing
when trying to do math based on the position of the parens.

So, I made it a little more resilient. I'm no longer attempting to
exclude the placeholder option with slice, but rather detecting it as an
option with no value (nil or "") and I am also allowing for team names
that are listed in an unexpected format (no parens around the league
name). If such a listing is encountered, it should return whatever the
string is for the team name and "Unknown" for the league.

Also did a little bit of refactoring to break up a long method.