Add fs.NotifyOnOOM for out-of-memory notifications

See dotcloud/docker#6212 for more discussion.
Would it better to return, say an enum? All failures in func() would just keep the caller waiting on the channel. Returning something on the channel in all cases will make it more predictable.