- Refactor: Extract interface from Response class, writeTo()
- Initial release: StreamingOutput
- Make StreamingOutput easily extendable
# E.g. newinstance("StreamingOutput", array(), "{
#   public function write($out) {
#     // User implementation
#   }
# );
- Refactor: Change Output from interface -> abstract base class
- Refactor: Extract header and cookie handling to base class
- Refactor: Header and status code writing - DRY
- QA: Apidocs
- Refactor: Output class -> webservices.rest.srv
- Make ResponseTests work once again
# TBD: Maybe the test should use accessors (and the class provide them!)
- Make RestDefaultRouterTest::no_slash_route work again
- Initial release: StreamingOutput tests
- Test of() factory method
- QA: Move uses("scriptlet.Cookie") to base class
- Implement StreamingOutput::equals()
- Implement setting "Last-Modified"
# See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
# "14.29 Last-Modified"
# [...]
# "HTTP/1.1 servers SHOULD send Last-Modified whenever feasible."
- Change scriptlet no to use headers_sent() but instead track itself
  This function does not return TRUE if we already sent all of our
  headers from inside flush() but only after the first byte of output
  has been written. This would result in the headers being sent twice.
- QA: Don't invoke getContent() twice inside sendContent()
- Add tests for flush() and isCommitted()
- Actually make scriptlet response unbuffered
Merge pull request #261 from thekid/rest-download

Rest downloads