Merge branch 'shell_fragments'

This merge brings over all the changes made by converting fragments to shells of themselves. From this point it should be trivial to completely remove Fragments, if it's determined that Fragments are absolutely not needed.

This resolves issue #1.