Adds IsFreeToPlay() To Inventory.cs #67

Creates a method to check if a user's inventory is free to play. This
fixes Issue #67: https://github.com/Jessecar96/SteamBot/issues/67

Tested on my inventory, and a free to play's inventory.

This does take into effect the comment of a Free to Play can use
Backpack Expanders.
Revert "Adds IsFreeToPlay() To Inventory.cs #67"

This reverts commit 0b0c85fdb8c8f951e3de1a2e3f1ecf52e9cdbb49.
Adds IsFreeToPlay()

Adds a function to determine if a user is FreeToPlay or not.
float_value attribute allows user to get the number of a crate in trade
contained_item attribute allows user to get the contents of a wrapped gift item in trade
Changed contained_item type to Item
Moved contained_item to its proper place
Updated SteamKit2 dependency to fix long connection times on startup
Added functions to get inventories when not in a trade
Added functions to get inventories when not in a trade
Adds a Bot Manager

Also cleans up the program.cs quite a bit and adds a bit more error checking than before.

Finish initial feature set for bot management.

New stuff:
- Add command line args to main SteamBot.exe (using NDesk.Options)
- Bot manager spawns child procs each of which runs it's given bot.
- Add user interaction to bot manager command line interface. Users can start and stop bots, and show config.
Modified stuff:
- Separate callback thread from Bot ctor (use Bot.StartBot) for cleanliness.
- Configuration objects got ToString
- Log threw exceptions in finalization. Use IDisposable to play nice.

Expansion of Bot Manager for threaded bots.

Adds support for launching all configured bots in their own threads.

Also adds much needed error handling to these threads so when one bot crashes the others don't. This is accomplished by using a BackgroundWorker object.

Had to add a window to retrieve steam guard code for threaded bots. There was no way to get auth tokens input when each bot's output is interleaved into one console.
Fix project build order in VS and MD.

Proto-buf MUST be built before Steamkit.

For MonoDevelop (Xamarin Studio) the order of projects in the solution seems important. MD has no GUI for editing build order so this seems to be the only way to specify it.

The MD changes do not break VS2010 support. But the visual studio GUI for build orders was used to change the build order. (VS wins this round).
Replaces Current Trade Event Checking Fixes #219

This changes the current way of checking events processed. Instead of
having a number, and using a for loop, this adds the events that are
processed into a list. Every time a status is obtained, it checks every
event to make sure it hasn't missed anything. I did have to add a method
that checks if the list contains the event, as List.Contains() was not
working, and kept triggering the events multiple times.

Ever since I have put this in, the bots have not missed any removing of
items, and it has been well over a week, with a decent amount of trades.
Add New Configuration Option to Template.

Also add a newline to the end of a file.
Implements Use Of IEquatable<>

This updates the TradeEvent to use IEquatable<> to allow .Equals to be
overridden, so checking if the TradeEvents list contains an event.
Update README.md

Adds configuration settings to README.md
Adds description of available (and functioning) commands.
Fixed Comments And Spelling

Fixes some comment conflict and a few spelling errors.
Close and warn on all trade failures
Rewrite of README.md

More changes

Remove Parens to fix link.
Adds clear command to bot manager

Adds `clear` command to bot manager. Useful after displaying a bot's configuration using `show`, since that contains the bot's password