PlanOut PHP Port Code Review

This PR should provide the project maintainers over at [PlanOut](https://github.com/facebook/planout) an easy way to review adding the proposed PHP port contained within this repository as a submodule for the original project.

Timeline for merge:
- [ ] review proposed port in this branch
- [ ] merge changes back into this repository's master branch
- [ ] update submodule checkout commit in [PlanOut PR](https://github.com/facebook/planout/pull/31) to reflect changes
- [ ] merge port as submodule into main PlanOut repository

cc @eytan for review
Hi Alex, I'll have to get back to you on this in a couple of days, but my gut reaction is that:

1. We most definitely want to separate the name space management aspects from the experiment interface, so that there is one kind of object for managing experiments within a namespace, and another kind that basically uses the experiment trait or interface.

2. I could see traits as being useful for adding in file logging or PSR logging to a class definition, but I am curious to know why they are necessary for the experiment case.

3. Makes sense to have the abstract namespace and then the trait for high level management but (perhaps similar to my take on (2)), I don't see the point in having a trait for simple namespaces. 

4. It would be useful for us to consider how this would be used in the context of serialized PlanOut scripts, which is really the only context where namespaces make sense. For example, given that experiment names, logging meta data, and assignment procedures all come from some data store, how easy is it to construct the necessary objects on the fly?  [Here is one example of how a namespaced experiment](https://facebook.github.io/planout/docs/getting-started-with-the-interpreter.html) can be constructed with the current PlanOut implementation in Python. 

5. @tsujeeth and @GregBowyer are actively working on implementing [PlanOut and namespaces in Go](https://github.com/URXtech/planout-golang), so it would be great to get their thoughts as well. I have no idea how to add them to this review or thread though...