The both can be translated into English as "go," but they have additional meanings in German as well. Gehen can mean go by foot, or walk. Fahren means to drive, or go by some other vehicle. (http://german.about.com/od/verbs/a/To-Go-In-German.htm)
So if you were walking to Germany, you could say "Ich gehe nach Deutschland." But if you were going by car, you would say "Ich fahre nach Deutschland."
Oh, with countries, cities, etc. it's always "nach". Not sure if there are any fixed rules when to use which one. The only thing that comes to mind is specificity:
Ich fahre/fliege nach Berlin/Washington/Deuschland/Amerika/China/Australien. (big places, not very specific)
Ich fahre/fliege zu meiner Familie (nach Berlin/Deutschland/Amerika...). (very specific place within a not so specific place)
I don't know the exact reason/rule, but 'zu Hause' means 'at home'. So if you want to say you're going home, you have to use 'nach Hause' because ''zu Hause' means something different.
Ich gehe nach Hause > I am going home. Ich bin zu Hause > I am at home.
(If you say 'Ich gehe zu Hause' you say 'I am going at home')
No, it would be "nach" to countries, cities, right, left, north, east, south, west and also "nach Hause". http://german.about.com/library/weekly/aa061900a.htm
Yes, nach requires dative case.
And no, you don't add an article, just as you wouldn't say "I am going to the Germany". Neuter-gender countries such as Deutschland are generally used without an article in German.
So Deutschland stands here on its own, in the dative case. (Which happens to look identical to the nominative case; most nouns don't change much in the various cases in the singular.)
Different kinds of destinations use different prepositions in German.
In the context of travelling or movement, most likely you are right by using "nach" with places and directions - and "zu" with people. But be aware of some exceptions like "zum (zu dem) Bahnhof [train station]" or "zur (zu der) Bushaltestelle [bus stop]" and some others.
And also be aware of a very lot of other meanings of "to" in different contexts...