Implementation of secure param for PageUrlAnnotation

There are a few things I am not 100% sure:
- should `$secure` always overwrite the protocol? even if it is not present.
- introduce `$secure` property and getter? Just now I alter the protocol to the current passed value of `$secure`
- comments of the new `$secure` param, quite a lot of information for a single line

Closes #63.
Maybe we can combine these 3 exceptions into a single one? and use single exception code for that too, like `TYPE_INVALID_URL`?