refactor to use flags for argument parsing for login and logout
Clean existing

Looks for src and metadata dirs

Doesn't match partial names, now looking for exact
New push by file path

Ability to push a file by absolute or relative paths
Clean up pushByName

Now since the complex logic is handled in the path method we
can just use pushByName to search for the file path and then
push it by the path
Accept multiple files in force push
Format push.go

Run of  to convert spaces to tabs and format
Use EqualFold instead of ToLower
Use XML library for building package.xml file
Get api version from force.go
Ignore package.xml in successes
Add better error printing with Line Numbers

Also, if pushing via a file name it will print out any errors
in a standard error format for parsing by any editor plugins
written to rely on Force CLI

In vim: `set errorformat+=%*[\"]%f%*[\"]\\,\ line\ %l:\ %m`
Reference version from force.go

Instead of having "28.0", "29.0", "30.0" strewn around, we can
keep the version in a single file and then reference that from
elsewhere to make upgrading and changing Api versions easy

Excluded push.go because there is another patch covering that one
Merge pull request #77 from ViViDboarder/global-version-number

Reference version from force.go
Merge pull request #76 from ViViDboarder/push-enhancements

Push enhancements
fix login error
merge conflicts
login usage update
Merge pull request #80 from dcarroll/master

login usage update