Repository: ktsn/vuex-smart-module (ts)

Issue:
Problem with migrating an existing project
Hello, @ktsn, how can i use modules in root and in options in same time? like this
```
const root = new Module({
  modules: {
    // typed modules
  },
})

export const store = createStore(
  root,
  {
    modules: {
        // non typed modules
      }
  }
)
```
spread operator removes modules from `rootModuleOptions`
probably problem in creating `new Store` [https://github.com/ktsn/vuex-smart-module/blob/cfbfaaa03471c7ab3cb96cc30d51c8c9021583f9/src/index.ts#L17](https://github.com/ktsn/vuex-smart-module/blob/cfbfaaa03471c7ab3cb96cc30d51c8c9021583f9/src/index.ts#L17)

can do the same as with plugins? and i can create a PR if you agree
```
new Store({
    ...rootModuleOptions,
    ...options,
    modules: {
       ...rootModuleOptions.modules,
       ...options.modules,
    },
    plugins: [injectStore].concat(options.plugins || []),
  })
```
this would greatly simplify the project migration

Pull request description:
feat: merge with raw vuex modules shallowly
fix #339 



Patch:
diff --git a/src/index.ts b/src/index.ts
index ebe7360..984e03f 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -17,6 +17,10 @@ export function createStore(
   const store: Store<any> = new Store({
     ...rootModuleOptions,
     ...options,
+    modules: {
+      ...rootModuleOptions.modules,
+      ...options.modules,
+    },
     plugins: [injectStore].concat(options.plugins || []),
   })
 


Test patch:
diff --git a/test/module.spec.ts b/test/module.spec.ts
index cbeda19..1b5c5e2 100644
--- a/test/module.spec.ts
+++ b/test/module.spec.ts
@@ -179,6 +179,31 @@ describe('Module', () => {
       expect(store.state.foo.bar.value).toBe(2)
       expect(store.state.foo.bar.baz.value).toBe(2)
     })
+
+    it('preserve raw vuex modules option', () => {
+      const foo = new Module({
+        state: FooState,
+      })
+
+      const root = new Module({
+        modules: {
+          foo,
+        },
+      })
+
+      const store = createStore(root, {
+        modules: {
+          bar: {
+            state: {
+              value: 'bar',
+            },
+          },
+        },
+      })
+
+      expect(store.state.foo.value).toBe(1)
+      expect(store.state.bar.value).toBe('bar')
+    })
   })
 
   describe('getters', () => {