add Netrc struct
new parser and new internal format to preserves whitespace
don't mangle macros with spaces at the beginning
make Netrc fulfill encoding.TextMarshaler interface

Make sure MarlshalText() output is the same as the input netrc file.
ability to update password and add new machines

Noted several methods that were not yet safe for concurrent use.
copy byte slices where they're being modified
make UpdatePassword() and UpdateLogin() work w/ tests
UpdateAccount()
make sure undesired tokens are omitted
verify Machine count and ordering after NewMachine()
no more need to return isDefault from FindMachine

Now that we have Machine.IsDefault(), there is no need to indicate
whether the machine was a default machine as part of the FindMachine()
func return values.
make NewMachine() safe for concurrent access