Correctly expand the run_list in server mode

The previous implementation would always expand the run_list on disk (since
ChefSpec only used Chef Solo). Now that ChefSpec supports server mode, we need
to expand the run_list differently. We can leverage the existing Chef core
`expand_run_list` method to handle this logic switching for us.

This commit now makes it possible to save the node's run_list back to the Chef
server _before_ converge. This indirectly adds support for roles as well.
Document setting a node's roles
Add examples and features for `stub_node`, auto-populate stubbed ids