Lets make a pcl

Specifically for windows phone. 

Unfortunately, windows phone does not support ConcurrentDictionary. So I did some research and added a ConcurrentCache class, inspired by [this](http://stackoverflow.com/questions/18367839/alternative-to-concurrentdictionary-for-portable-class-library). 

With this, came adding a nuget dependency for the PCL project to [Microsoft.Net.Http](http://www.nuget.org/packages/Microsoft.Net.Http), and  [Microsoft.Bcl.Immutable](http://www.nuget.org/packages/Microsoft.Bcl.Immutable/).  And for the tests project I had to add a reference to [Microsoft.Bcl.Build](http://www.nuget.org/packages/Microsoft.Bcl.Build/), to tackle a warning.

Added a PCL tests project, that *should* use the pcl directive to test the concurrent cache. I stepped through it and everything seemed to work. Not all the integration tests ran, but they were around private repositories, and my test user does not have a premium account.

While filling out this request, I saw you had [a discussion](https://github.com/octokit/octokit.net/pull/284) earlier on this. I want to keep momentum going on a open source github winphone app going, so I thought I would submit this and pay it forward a bit.

I did add one warning, but I think I was following the naming convention in the project. There is already a warning **load of property 'rootnamespace' failed** for Octokit.Tests-NetCore45, I [suspect](http://social.msdn.microsoft.com/Forums/en-US/fa4ccb39-c46c-4653-950a-c709f6ba7b15/what-does-this-warning-message-mean?forum=Vsexpressvcs) it is caused by the '-' in the default namespace.

Apologies if this is long, I just want to make sure I touch on everything I did. Thanks.