Initial commit

The initial commit contains a working codebase with only the ability to
connect the Steam chat bot to the Steam servers. Basic bot functionality
will be added after each feature is tested, and event triggers that
dictate when and how the bot will perform actions will be added via
separate classes and attached to the bot after the instance of the bot
has been created.
Maint: Don't create instance if not main module
Docs: Minor terminology adjustments
Fix: Pass string representing the error object
Maint: Fix typo
Maint: Move command line parsing to entry point

Move command line parsing to the entry point file, and make the
interface more transparent for SteamChatBot in its constructor. This is
better design and will allow for easier implementation of a test
framework in the near future.
Style: Convert to UNIX-style line endings
Docs: Add quick start instructions
Docs: Minor terminology adjustments
Style: Convert tabs to spaces
Style: Prefix private methods with an underscore
Enh: Use prompt for authentication

Use prompt to handle authentication rather than accept command line
arguments via stdio. Using a prompt to request the authentication
information provides security benefits over passing sensitive
information via the command line, as the sensitive information is no
longer visible in the console nor is it saved to its history. The prompt
package also allows for hidden properties, which can be applied to the
password property for extra security. Another benefit is that the prompt
package is asynchronous, whereas stdio is not.
Fix: Steam Guard code may include digits
Maint: Use asynchronous fs methods

Prefer the asynchronous fs.writeFile and fs.readFile over the
synchronous versions.

Ref: http://nodejs.org/api/fs.html
Maint: Remove Steam Guard code check

Pass undefined if a Steam Guard authentication code not was provided.
Maint: Save bot persona state

This change is mostly in preparation for future functionality. For
example, a potential bot command may be added to allow a user to restart
the bot. Upon the subsequent reconnect, the bot should remain in the
state from its previous session.
Docs: Update note regarding Steam Guard code

If a valid sentry file exists, Steam will ignore the Steam Guard code if
one is provided.
Maint: Fix error message for Steam Guard code

Update the error message for the Steam Guard code property to note that
digits are also allowed.
Fix: Use asynchronous file writing

Forgot to update to fs.writeFile from a previous commit.
Maint: Use Function.prototype.bind()

Bind the bot's context to each callback instead of relying on redundant
anonymous callbacks or saving the object to a temporary variable.

Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind