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
Docs: Update note regarding Steam Guard code

Remove language involving the need to remove the Steam Guard code, as it
must be entered manually via the console when the bot is started.
Maint: Restructure error message language

Restructure the language used for all error messages to better clarify

the type of error.
Maint: Provide error messages for all properties

Provide error messages for the username and password properties. These

messages clarify that these properties are required.
Maint: Tweak language for error message

Tweak the language for the Steam Guard code property's error message.
Maint: Return early instead of using else
Test: Add initial test framework

Add tests for SteamChatBot.Connect(). Three tests have been added to
test use cases for: when a username and password are provided, and a
sentry file does not yet exist; when a username, password, and Steam
guard code are provided, and a sentry file does not exist; and when a
username and password are provided, and a sentry file exists.
Test: Add Travis CI support
Docs: Add build status icon
Docs: Add dependency status icons