Added schema caching to Schema.cs
Added schema caching to Schema.cs

How it works:
Schema web connection is opened and headers read.
If cache file is not present or its creation time is older than "Last-Modified" of web schema Schema is pulled from api.steampowered.com, put into cache file and  cache file creation time is set equal to Schema Last-modified.
If cache file is present and is up-to-date the Schema is downloaded from the file.
Add TradeManager Class.

This class should handle setting up trades, fetching inventories,
trade polling, trade timeouts and other things the trade object
should not be handling.

- This also addresses some inventory fetching issues as well by
adding more user interactions on fetching exceptions.
- Has a separate fix for users of Bot.OpenTrade who expect it to
work as a bot-initiated trade.

Add TradeThread Partial File.

- This will handle a Trade's threading and remove it from the Bot.
- Also made starting trades cleaner with the first call to Poll.

Flesh Out Trades and TradeManager

- Fix issues with private backpacks by checking Inventory correctly and
rejecting trade w/ private bp
- Made some trade data static since it was really static.
- Remove inventory fetching from Trade
- Add InventoryFetchException

Add TradeManager Comments

- Also rename FetchInventories to InitializeTrade so that it's more
obvious that it should be called before StartTrade.

Add Comments to TradeManager

Move Trade Thread Into TradeManager.

- Move time out stuff into TradeManager as well.
- Move some events as well (probably need to move more).
- Format Trade.cs
- Remove all functionality from TradeThread.cs (remove file next)

Remove TradeThread.cs From Project.

Fix Trade Accpet and Cancellation

- Fix by removing event handlers and tracking current trade in
TradeManager and adding a StopTrade also.
- Move Subsribe/UnsubscribeTrade from UserHandler into Bot.
- UserHandler.Trade is now a property that returns the Bot's current
trade.

Updates the Version Numbers for Projects.

- SteamBot(ExampleBot) and SteamTrade

Fix for OpenTrade.

- Had to create a seperate HandleTradeSessionStart that did what
OpenTrade used to do.
- OpenTrade now does the SteamTrade stuff (which opens a trade with
someone else as expected).
- Add some more logging.
Update SteamBot/Bot.cs

Fixes issue #100. In Linux file names are case sensitive. The bug described in issue #100 cause Bot to not find existing sentryfile.
Minor Fixes.

- Also formats UserHandler and adds comments.
More Minor Fixes.

- Removed the Trade param to StopTrade (some sort of indicator may be
needed if multiple trades are to be handled at the same time).
- Fix typo and add some comments.
Updates README.md

Clarifies the download methods available.
Merge remote-tracking branch 'upstream/master'
Update SteamTrade/Schema.cs

Fixed indentation, changed cache file name.
Change Output Path of SteamBot.

- Output path now matches documentation. Goes to <projectroot>/Bin
- Update README with more information and remove old information.
- Remove old SLN file and add a configuration template file for release
builds.
Added extra error checking before adding item to trade
Merge pull request #136 from Payme/master

Extra error checking before adding items to a trade
Fix for wrong bot behaviour being used.
Merge pull request #134 from cwhelchel/fix/cfg-file-loc

Fix for bad placement of config file.
Merge pull request #131 from lazy1/master

Schema caching was added to SteamTrade/Schema.cs
Merge pull request #138 from Payme/master

Wrong bot behaviour being used when multiple bots.
Fixed Bug on RemoveAllItemsByDefindex().
- It wasn't removing any items.
- note: bug introduced in ce285d96e9a9f9b00b685ad925e0fe7347829757 along with RemoveAllItemsByDefindex().
Merge pull request #154 from omega32/master

Fixs Bug on RemoveAllItemsByDefindex()
Updates SteamKit2 Dependency
Implemented OnFriendRemove() callback.