Update Song parsing to use Gson

Replaced the String.split() parsing with the JSON parsing library Gson.
Also, in the case where multiple <script> elements exist, this implementation
will parse each JSON object correctly.

Before this change, if a comma was present within a string (such as
song title or album), extra tokens would be treated as song elements.
This would cause a Song object to be created with invalid data. The Gson
library parses strings with commas and therefore resolves this issue.

Also before this change, responses with multiple <script> elements were
not parsed correctly. For large Song collections, the response may contain
more than one <script> element, breaking up the Song collection JSON.
The previous implementation would not parse the first Song in the second
<script> element. The JSON is now extracted for each <script> element, so
this no longer occurs.