That should clear up your question about wa and ga.
The ~koto ga/wa arimasu literally means "~thing exists".
In Japanese, we don't have pronouns such as "that" and "who" etc. Conjugated verbs are used instead to make relative clauses.
For example, "Tatsu hito" means "a person *who* stands". There is no "who" in the Japanese sentence, rather the verb directly qualifies the noun.
Or "Shashimi o tabete iru neko" means "A cat *that* is eating shashimi".
Now, "koto" means "thing". So when I, for example, say "nomu koto", this means "the act/thing of drinking". The koto is a nominalizer to the verb.
In the past tense, when I say "nonda koto" it therefore means something like "the act of having drunk".
So then put that together with "ga aru/arimasu", and you have "The act of having drunk exists" or more naturally, "I have drunk (at times)".
Hope this helps. If you have other questions, ask. =)