re #91 : Refactor FilesystemStream

FilesystemStream

- Add delete() method
- Make close() return boolean

FilesystemStreamRegistry

- Implement FilesystreamStreamRegistry to handle act as proxy for stream_wrapper_register(), stream_wrapper_unregister() and stream_get_wrappers() functions
- Rename FilesystemStreamInterface::getProtocol() to getWrapper()
- Move  FilesystemStreamInterface::isSupported() to FilesystemStreamWrapperRegistry
- Move  FilesystemStreamInterface::isRegistered() to FilesystemStreamWrapperRegistry
- Move FilesystemStreamInterface::getWrappers() to FilesystemStreamWrapperRegistry

FilesystemStreamWrapper

- Remove register() method
- Remove unregsiter() method
- Remove isRegistered() method
- Rename getProtocol() method to getName() and make method static

FilesystemStreamWrapperBuffer

- Improve temporary file and directory implementation.
- Add getTemporaryFile() method
- Add getTemporaryDirectory() method.
re #91 : Use FilesystemStream with buffer wrapper

- Add getStream() method
- Add setStream() method.
- Register buffer stream wrapper by default through getStream.
re #91 : Add buffer wrapper through the stream constructor.
re #91 : Fixed typo
re #91 : Add toString to interface and make __toString() final.
re #91 : Rename getData() to getMetaData() and setData() to setMetaData().
Rename params option to context.
Code cleanup