Add more state properties to ENNotebook

And put isShared logic into the ENNotebook itself

Change-Id: I19a3fa601b2b08e1fb620f9e5565b0dbc6be555c
Fix issue of [ENSession noteStoreForNotebook:] not returning proper store for linked notebook

If input notebook is a shared notebook, the returned note store will not work properly because the note store client delegate is not set.

To solve this issue simply call [ENSession noteStoreForLinkedNotebook:] which will setup delegate properly.
Merge pull request #23 from siuying/notestore-shared

Fix issue of [ENSession noteStoreForNotebook:] not returning proper store for linked notebook
Fix source-url issue

Reported from frnkwk
Sometimes, source-url of EDAMResource contains 2byte characters and special characters.
To Avoid crash, convert source-url string to URL-encode string.

Change-Id: Ibc7e324dbb4b0c60bc33d3d4b6c630a4ead817b5