I'm super nervous about pulling the fold calculation out of the partial rendering and checking the whole buffer for each render call. I did some benchmarks:

```coffee
    editor = atom.workspace.getActiveEditor()
    console.log editor.getLineCount()
    console.time 'is foldable'
    row = 0
    lines = editor.getLineCount()
    while row < lines
      editor.isFoldableAtBufferRow(row)
      editor.isFoldedAtBufferRow(row)
      row++
    console.timeEnd 'is foldable'
```

Checks every line in `editor-spec.coffee` (3269 lines)
Only running `editor.isFoldableAtBufferRow(row)` takes ~__15ms__.

`editor.isFoldableAtBufferRow(row)` and `editor.isFoldedAtBufferRow(row)` takes a min of __55ms__ but average is more along the lines of __70ms__.

I think using the marker decoration approach for folds might speed things up but it doesnt work for checking `foldable`.