Performance Improvements & small changes

* Performance improvements, we now explicitly set the layout count on
the queue nodes.
* Popper core detection is now done so we only detect physical cores not
the logical ones.
* Replaced the lock with CAS for thread scheduller.
* Exposed some of the counters as properties for smart thread.