better NumberLong and other custom types handling

- ScriptableMongoObject now keeps a registry of all subclass prototypes as they are first created to support creation of objects in the rhino engine without using the 'new' operator
- NumberLong and NumberInt now can have their wrapped value set explicitly (inconsistent issue where parameterized constructor wasnt being called by BSONizer)
- BSONizer has improved conversion handling following above changes