Org-mode in Emacs is brilliant for this. Write things as outlines, shift sub-trees around trivially, fold (hide) and un-fold (reveal) subtrees, embed links within your outline, export to text or HTML when needed.
http://orgmode.org/manual/Setting-up-Remember-for-Org.html#S...
and: > However some things don't fit nicely into a hierarchy.
sometimes the hyperlink feature of org-mode helps with a non-tree-like structure: http://orgmode.org/manual/Hyperlinks.html#Hyperlinks
I have yet to find a truly great outlining program yet. (Note: I plan on learning org-mode emacs but I am a vim guy so the initial inertia of learning it is high.)
I rearrange things by writing them down again (in the new order). This also helps to refresh the memory.